使用devstack 一键安装 openstack详细过程和遇到的坑
安装参考链接 https://www.cnblogs.com/dyd168/p/14482507.html
后面都是解决坑。。。。
安装之前以下操作是必要的:
[root@jay-server ~]# vim /etc/selinux/config [root@jay-server ~]# setenforce 0 [root@jay-server ~]# cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
注意点:遇到安装错误,重装需执行 ./clean.sh ==》 /unstack.sh ==》 ./stack.sh
安装过程中很多东西需要从github下载,所以最好提前准备好代理服务,执行安装之前代理一下
export https_proxy=代理服务:端口
坑一:
ERROR /opt/stack/devstack/lib/neutron_plugins/ovn_agent:174 Socket
As said above by Sage Ren, When we are going to run Command $ ./stack.sh
first time and the above error is encounters.
This error is solved easily by following below steps.
- Go to neutron_plugin folder, by default the folder is reside in the /opt/stack/devstack/lib
/neutron_plugins
directory. - open ovn_agent file with sudo privileges.
- change line 116 which looks like this
OVS_RUNDIR=$OVS_PREFIX/var/run/openvswitch
you just have to change ovn by replacing of openvswitch. after change your line will becomeOVS_RUNDIR=$OVS_PREFIX/var/run/ovn
now save the file. - Now go to
/var/run/ovn/
directory, In this you will find ovn folder over there. Just remove the folder using$sudo rm -rf ovn command
- Now first run
./clean.sh
and then./unstack.sh
command - reboot the system
- run ./stack.sh
坑二:(这个我没遇到,来自网上)
==========================
[Call Trace]
./stack.sh:499:check_path_perm_sanity
/opt/stack/devstack/functions:612:die
[ERROR] /opt/stack/devstack/functions:612 Invalid path permissions
==========================
fixed:
$ sudo chmod 755 /opt/stack
==========================
坑三:python3.6 安装不了 futures-3.0.5
ERROR: Cannot install nova because these package versions have conflicting dependencies.
The conflict is caused by:
pypowervm 1.1.26 depends on futures>=3.0; python_version == "3.6"
The user requested (constraint) futures===3.0.5
To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict
ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies
fixed:
$ wget https://files.pythonhosted.org/packages/55/db/97c1ca37edab586a1ae03d6892b6633d8eaa23b23ac40c7e5bbc55423c78/futures-3.0.5.tar.gz#sha256=0542525145d5afc984c88f914a0c85c77527f65946617edb5274f72406f981df
$ tar xfvz futures-3.0.5.tar.gz
$ cd futures-3.0.5/
$ sed -i 's/raise type(self._exception), self._exception, self._traceback/raise Exeption(type(self._exception), self._exception, self._traceback)/' concurrent/futures/_base.py
$ sudo python3 setup.py install
坑四:(这个我没遇到,来自网上)
+./stack.sh:main:1102 create_keystone_accounts
+lib/keystone:create_keystone_accounts:314 local admin_project
++lib/keystone:create_keystone_accounts:315 oscwrap project show admin -f value -c id
++functions-common:oscwrap:2330 local xtrace
+++functions-common:oscwrap:2331 grep xtrace
+++functions-common:oscwrap:2331 set +o
++functions-common:oscwrap:2331 xtrace='set -o xtrace'
++functions-common:oscwrap:2332 set +o xtrace
/opt/stack/devstack/functions-common: line 2342: openstack: command not found
++functions-common:oscwrap:2349 return 127
+lib/keystone:create_keystone_accounts:315 admin_project=
+lib/keystone:create_keystone_accounts:1 exit_trap
+./stack.sh:exit_trap:507 local r=127
++./stack.sh:exit_trap:508 jobs -p
+./stack.sh:exit_trap:508 jobs=99848
+./stack.sh:exit_trap:511 [[ -n 99848 ]]
+./stack.sh:exit_trap:511 [[ -n '' ]]
+./stack.sh:exit_trap:517 '[' -f /tmp/tmp.6eYDz6mXg1 ']'
+./stack.sh:exit_trap:518 rm /tmp/tmp.6eYDz6mXg1
+./stack.sh:exit_trap:522 kill_spinner
+./stack.sh:kill_spinner:417 '[' '!' -z '' ']'
+./stack.sh:exit_trap:524 [[ 127 -ne 0 ]]
+./stack.sh:exit_trap:525 echo 'Error on exit'
Error on exit
+./stack.sh:exit_trap:527 type -p generate-subunit
+./stack.sh:exit_trap:530 [[ -z /opt/stack/logs ]]
+./stack.sh:exit_trap:533 /bin/python3.6 /opt/stack/devstack/tools/worlddump.py -d /opt/stack/logs
==========================
fixed:
$ id
uid=1000(stack) gid=1000(stack) groups=1000(stack),1002(libvirtd)
$ echo "PATH=/usr/local/bin/:\$PATH" >> /opt/stack/.bashrc
$ echo "export PATH" >> /opt/stack/.bashrc
logout and login
坑五:这个其实是因为上次执行报错,没有执行clean.sh
+lib/neutron_plugins/ovn_agent:install_ovn:357 sudo mkdir -p /var/run/openvswitch
++lib/neutron_plugins/ovn_agent:install_ovn:358 whoami
+lib/neutron_plugins/ovn_agent:install_ovn:358 sudo chown stack /var/run/openvswitch
+lib/neutron_plugins/ovn_agent:install_ovn:362 sudo ln -s /var/run/openvswitch /var/run/ovn
ln: failed to create symbolic link '/var/run/ovn/openvswitch': File exists
+lib/neutron_plugins/ovn_agent:install_ovn:1 exit_trap
==========================
fixed:
$ vim /opt/stack/devstack/lib/neutron_plugins/ovn_agent
- sudo ln -s $OVS_RUNDIR $OVN_RUNDIR
+ [ -f $OVN_RUNDIR ] || sudo ln -s $OVS_RUNDIR $OVN_RUNDIR
坑六:按教程安装完之后,重启电脑服务没起来
开放80 6640 6080 9696端口
1 [root@jay-server ~]# cat /etc/sysconfig/iptables 2 # sample configuration for iptables service 3 # you can edit this manually or use system-config-firewall 4 # please do not ask us to add additional ports/services to this default configuration 5 *filter 6 :INPUT ACCEPT [0:0] 7 :FORWARD ACCEPT [0:0] 8 :OUTPUT ACCEPT [0:0] 9 -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 10 -A INPUT -p icmp -j ACCEPT 11 -A INPUT -i lo -j ACCEPT 12 -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 13 -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 14 -A INPUT -p tcp -m state --state NEW -m tcp --dport 6640 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 6080 -j ACCEPT 15 -A INPUT -p tcp -m state --state NEW -m tcp --dport 9696 -j ACCEPT 16 -A INPUT -j REJECT --reject-with icmp-host-prohibited 17 -A FORWARD -j REJECT --reject-with icmp-host-prohibited 18 COMMIT
开启启动以下服务:
systemctl ebable httpd
systemctl enable memcached
cat admin-openrc.sh export OS_USERNAME=admin export OS_PASSWORD=duanyd export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://192.168.0.17/identity export OS_IDENTITY_API_VERSION=3
cat start_service.sh systemctl start devstack@n-super-cond.service systemctl start devstack@n-sch.service systemctl start devstack@n-cond-cell1.service
查看日志的方法:
systemctl status "devstack@*" systemctl list-unit-files | grep devstack journalctl -u devstack@q-svc -f