本文介紹在單節點上用packstack一鍵安裝openstack的方法,其中節點的硬件架構爲x86_64(必須是64位,32位不能夠)、操做系統爲centos7。官方的安裝文檔地址爲https://openstack.redhat.com/Quickstart。node
更新安裝的軟件包,命令以下:mysql
sudo yum update -yios
創建RDO庫,命令以下:sql
sudo yum install -y https://rdo.fedorapeople.org/rdo-release.rpmswift
上面的RDO庫安裝的openstack版本爲Juno,若是想要安裝openstack以前的版本,訪問http://rdo.fedorapeople.org/找到對應的rpm文件安裝便可。.centos
安裝packstack,命令以下:架構
sudo yum install -y openstack-packstackapp
在單節點安裝openstack的命令以下所示:網站
packstack --allinoneui
若是在安裝過程當中遇到問題,請在https://openstack.redhat.com/Workarounds中查看是否有相似問題的解決方式。
RDO官方網站給出的卸載方法爲https://openstack.redhat.com/Uninstalling_RDO。
若是節點上只有openstack,沒有其餘服務,則用下面的徹底卸載方式,將下面的節本複製到一個文件中,修改文件爲可執行,執行該文件便可完成卸載程序。卸載節本以下所示:
# Warning! Dangerous step! Destroys VMs
for x in $(virsh list --all | grep instance- | awk '{print $2}') ; do
virsh destroy $x ;
virsh undefine $x ;
done ;
# Warning! Dangerous step! Removes lots of packages, including many
# which may be unrelated to RDO.
yum remove -y nrpe "*nagios*" puppet ntp ntp-perl ntpdate "*openstack*" \
"*nova*" "*keystone*" "*glance*" "*cinder*" "*swift*" \
mysql mysql-server httpd "*memcache*" scsi-target-utils \
iscsi-initiator-utils perl-DBI perl-DBD-MySQL ;
ps -ef | grep -i repli | grep swift | awk '{print $2}' | xargs kill ;
# Warning! Dangerous step! Deletes local application data
rm -rf /etc/nagios /etc/yum.repos.d/packstack_* /root/.my.cnf \
/var/lib/mysql/ /var/lib/glance /var/lib/nova /etc/nova /etc/swift \
/srv/node/device*/* /var/lib/cinder/ /etc/rsync.d/frag* \
/var/cache/swift /var/log/keystone ;
umount /srv/node/device* ;
killall -9 dnsmasq tgtd httpd ;
setenforce 1 ;
vgremove -f cinder-volumes ;
losetup -a | sed -e 's/:.*//g' | xargs losetup -d ;
find /etc/pki/tls -name "ssl_ps*" | xargs rm -rf ;
for x in $(df | grep "/lib/" | sed -e 's/.* //g') ; do
umount $x ;
done
若是節點上還有其餘服務運行,則用下面的保守卸載方式,將下面的節本複製到一個文件中,修改文件爲可執行,執行該文件便可完成卸載程序。卸載節本以下所示:
for x in $(virsh list --all | grep instance- | awk '{print $2}') ; do
virsh destroy $x ;
virsh undefine $x ;
done ;
yum remove -y "*openstack*" "*nova*" "*keystone*" "*glance*" "*cinder*" "*swift*" "*rdo-release*";
# Optional - makes database cleanup cleaner.
# If you do this bit, the database cleanup stuff below is superfluous.
# yum remove -y "*mysql*"
ps -ef | grep -i repli | grep swift | awk '{print $2}' | xargs kill ;
rm -rf /etc/yum.repos.d/packstack_* /var/lib/glance /var/lib/nova /etc/nova /etc/swift \
/srv/node/device*/* /var/lib/cinder/ /etc/rsync.d/frag* \
/var/cache/swift /var/log/keystone /tmp/keystone-signing-nova ;
# Ensure there is a root user and that we know the password
service mysql stop
cat > /tmp/set_mysql_root_pwd << EOF
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;
EOF
# mysql cleanup
/usr/bin/mysqld_safe --init-file=/tmp/set_mysql_root_pwd &
rm /tmp/set_mysql_root_pwd
mysql -uroot -pMyNewPass -e "drop database nova; drop database cinder; drop database keystone; drop database glance;"
umount /srv/node/device* ;
vgremove -f cinder-volumes ;
losetup -a | sed -e 's/:.*//g' | xargs losetup -d ;
find /etc/pki/tls -name "ssl_ps*" | xargs rm -rf ;
for x in $(df | grep "/lib/" | sed -e 's/.* //g') ; do
umount $x ;
done