美文网首页
卸载RDO

卸载RDO

作者: 浪尖儿 | 来源:发表于2016-08-17 17:39 被阅读0次

    用packstack安装了Openstack的Havana版本,想安装最新的icehouse版本试试,但是不知道怎么卸载或者删除之前安装的Openstack,那么多的组件和服务怎么才能卸载干净呢?找了官方文档才发现,原来已经提供了卸载RDO的方法,需要运行一个脚本就能解决问题。官方声称未来会支持从版本N升级到版本N+1。
    如果是在虚拟机中安装的Openstack,强烈建议对虚拟机做快照,这样如果有地方出了问题,方便回到出问题之前的状态。

    Big hammer method

    运行下面的脚本可以完全卸载RDO,包括所有的程序数据,组件包等。注意:这里假设你在这台机器上面只跑了Openstack!如果这台机器还有其他用途,那么请使用Slightly smaller hammer method这个方法。

    # 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
    
    Slightly smaller hammer method
    

    下面的脚本只删除特定的程序数据和组件包,会留下一些Openstack相关的数据。

    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
    

    还可以,使用单条命令

    for x in $(virsh list --all | grep instance- | awk '{print $2}') ; do virsh destroy $x ; virsh undefine $x ; done ; yum remove -y nrpe "*nagios*" puppet ntp "ntp-*" ntpdate "rdo-release" "*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 ; 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 /tmp/keystone-signing-nova ; find /etc | grep rpmsave | xargs rm -vf ; 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
    

    根据需求不同,把上面适合使用的脚本写到一个脚本文件里面,然后使用chmod +x scripts.sh赋予执行权限,然后执行一下就可以了!

    相关文章

      网友评论

          本文标题:卸载RDO

          本文链接:https://www.haomeiwen.com/subject/kawmsttx.html