文章目录
前言
OpenStack是一个开源的云计算平台,它可以提供计算、存储和网络资源的管理。Train版和Rocky版是OpenStack的两个版本,分别发布于2018年和2017年。其中,Train版是OpenStack的第十六个版本,而Rocky版是OpenStack的第十五个版本。
Train版和Rocky版的主要区别在于软件包版本的更新和改进。Train版中加入了一些新功能,例如更好的容器支持、更好的网络服务等。同时,Train版也进行了一些改进,例如更好的虚拟机管理、更好的存储管理等。与之相比,Rocky版在一些方面可能不如Train版那么先进,但在稳定性和可靠性方面表现良好。
如果你正在考虑使用OpenStack,那么选择哪个版本取决于你的具体需求和情况。如果你需要先进的功能和技术支持,那么可以考虑选择Train版;如果你更注重稳定性和可靠性,那么可以考虑选择Rocky版,本文主要介绍Rocky版部署安装。
环境介绍
实验拓扑图
实验目的
采用的3个虚拟机节点作为演示环境,演示如何自动化快速搭建一套Rocky版的openstack云平台
实验开始
具体实验配置,先创建3台最小化版的centos 7.6虚拟机,其中CT设双网卡,可以上网下载一些时钟同步软件包
安装系统部署
将网卡参数改为 eth0格式,
后续方法一样,都设网卡为etho ,以及同样的配置。
配置CT为双网卡
配置IP参数
修改控制节点IP地址,这个是是双网卡,并添加本地域名解析
查看ct 网卡配置
[root@ct ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:7e:ce:9e brd ff:ff:ff:ff:ff:ff
inet 192.168.100.22/24 brd 192.168.100.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::3189:c4ce:b30f:6d34/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:7e:ce:a8 brd ff:ff:ff:ff:ff:ff
inet 20.0.0.10/24 brd 20.0.0.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::6ffa:574d:164c:6f2e/64 scope link
valid_lft forever preferred_lft forever
三个节点开局优化
这里用ftp方式,将软件包上传到ct
上传 本地 openstack 资源包
[root@ct ~]# cd /opt
[root@ct opt]# ls
openstack_rocky.tar.gz
解压软件包
[root@ct opt]# tar -zxvf openstack_rocky.tar.gz
三台都需要挂载本地源
创建本地YUM源
[root@ct opt]# cd /etc/yum.repos.d
[root@ct yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
[root@ct yum.repos.d]# mkdir backup
[root@ct yum.repos.d]# mv * backup
mv: cannot move ‘backup’ to a subdirectory of itself, ‘backup/backup’
[root@ct yum.repos.d]# ls
backup
[root@ct yum.repos.d]# vim openstack.repo
[openstack]
name=openstack
baseurl=file:///opt/openstack_rocky
gpgcheck=0
enabled=1
[mnt]
name=mnt
baseurl=file:///mnt
gpgcheck=0
enabled=1
~
挂载本地光盘镜像源
[root@ct yum.repos.d]# mount /dev/sr0 /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@ct yum.repos.d]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 291G 1.7G 290G 1% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 8.6M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 135M 880M 14% /boot
tmpfs 781M 0 781M 0% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /mnt
[root@ct yum.repos.d]#
自动挂载
Vim /etc/fstab
/dev/sr0 /mnt iso9660 defaults 0 0
[root@ct yum.repos.d]# yum clean all '//清除缓存'
[root@ct yum.repos.d]# yum makecache '//创建缓存'
关闭网络管理
[root@ct yum.repos.d]# systemctl stop NetworkManager
[root@ct yum.repos.d]# systemctl disable NetworkManager
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
配置本地 hosts 映射(三台都需要)
192.168.100.22 ct
192.168.100.23 c1
192.168.100.24 c2
~
cat << EOF > /etc/hosts
192.168.100.22 ct
192.168.100.23 c1
192.168.100.24 c2
EOF
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux
关闭网络管理
systemctl stop NetworkManager
systemctl disable NetworkManager
两台C1 C2 创建此计划任务
*/30 * * * * /usr/sbin/ntpdate ct >>/var/log/ntpdate.log
[root@c1 ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@c1 ~]# crontab -l
*/30 * * * * /usr/sbin/ntpdate ct >>/var/log/ntpdate.log
[root@c2 ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@c2 ~]# crontab -l
*/30 * * * * /usr/sbin/ntpdate ct >>/var/log/ntpdate.log
Ct 修改配置参数(时钟同步设置)
[root@ct ~]# vi /etc/ntp.conf
所有节点都执行此操作
systemctl restart crond
systemctl enable crond
CT节点执行以下操作
systemctl restart ntpd
systemctl enable ntpd
systemctl disable chronyd.service
配置时间同步与本地时钟服务
[root@ct yum.repos.d]# yum install ntp ntpdate -y '//c1和c2节点不需要安装ntp'
[root@ct yum.repos.d]# ntpdate ntp.aliyun.com '//c1和c2节点直接同步ct即可'
26 Feb 17:39:38 ntpdate[42996]: adjust time server 203.107.6.88 offset 0.003337 sec
[root@ct yum.repos.d]# crontab -e '//ct计划任务'
*/30 * * * * /usr/sbin/ntpdate ntp.aliyun.com >>/var/log/ntpdate.log
[root@c1 yum.repos.d]# crontab -e '//c1和c2设置计划任务'
*/30 * * * * /usr/sbin/ntpdate ct >>/var/log/ntpdate.log
[root@ct yum.repos.d]# vi /etc/ntp.conf '//c1和c2节点不需要配置ntp时钟服务'
restrict default nomodify ###第8行改
restrict 192.168.100.0 mask 255.255.255.0 nomodify notrap ###第17行改
###将21行到24行删除##
21 server 0.centos.pool.ntp.org iburst
22 server 1.centos.pool.ntp.org iburst
23 server 2.centos.pool.ntp.org iburst
24 server 3.centos.pool.ntp.org iburst
###删除的插入下面内容###
fudeg 127.127.1.0 stratum 10
server 127.127.1.0
[root@ct yum.repos.d]# systemctl restart crond '//c1和c2都要做'
[root@ct yum.repos.d]# systemctl enable crond '//c1和c2都要做'
[root@ct yum.repos.d]# systemctl restart ntpd '//c1和c2不做'
[root@ct yum.repos.d]# systemctl enable ntpd '//c1和c2不做'
[root@ct yum.repos.d]# systemctl disable chronyd.service '//取消开机自启,否则ntp开启自启不成功'
三台节点建立免密连接,步骤三台节点都要操作,仅展示控制节点的操作
[root@ct yum.repos.d]# ssh-keygen -t rsa '//一路回车即可'
[root@ct yum.repos.d]# ssh-copy-id ct '//交互提示 输入yes 然后输入密码'
[root@ct yum.repos.d]# ssh-copy-id c1
[root@ct yum.repos.d]# ssh-copy-id c2
重启,检查刚才的开局配置是否生效
控制节点Openstack一键环境部署
控制节点Openstack一键环境部署
[root@ct ~]# yum -y install openstack-packstack '//安装一键部署工具'
[root@ct ~]# packstack --gen-answer-file=openstack.txt '//生成应答文件'
[root@ct ~]# vi openstack.txt
41 CONFIG_SWIFT_INSTALL=n '//第41行SWIFT是OpenStack的对象存储组件,默认是Y,在生产环境中一般是不装,所以改n'
50 CONFIG_AODH_INSTALL=n '//第50行,默认是Y 需要改n'
97 CONFIG_COMPUTE_HOSTS=192.168.100.23,192.168.100.24 '//第97行需要更改计算节点的IP地址'
101 CONFIG_NETWORK_HOSTS=192.168.11.100 '//第101行 需要更改网络节点的IP地址'
782 CONFIG_LBAAS_INSTALL=y '//第782行 LBAAS负载均衡组件。必选要装 选y'
790 CONFIG_NEUTRON_FWAAS=y '//第790行 FWAAS是防火墙组件。必选要装 选y'
794 CONFIG_NEUTRON_VPNAAS=y '//第794行 VPNAAS是VPN组件。必选要装 选y'
817 CONFIG_NEUTRON_ML2_FLAT_NETWORKS=physnet1 '//第817行,FLAT网络这边要设置物理网卡名字'
862 CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex '//第862行,这边要设置物理网卡的名字'
873 CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth1 '//第873行,这边br-ex:eth1是网络节点的nat网卡'
1185 CONFIG_PROVISION_DEMO=n '//第1185行 是OpenStack联网下载一个测试镜像,这边没联网。说以改成n'
'//开启之前注释的网关#GATEWAY=192.168.100.1'
[root@ct ~]# sed -i -r 's/(.+_PW)=.+/\1=123123/' openstack.txt '//将密码修改为123123'
[root@ct ~]# sed -i -r 's/20.0.0.10/192.168.100.22/g' openstack.txt '//将节点变成192.168.100.22'
[root@ct ~]# grep -vE "^#|^$" openstack.txt >openstackbak.txt '//备份文件'
[root@ct ~]# packstack --answer-file=openstack.txt '//开始部署'
[root@ct ~]# packstack --answer-file=openstack.txt
Welcome to the Packstack setup utility
The installation log file is available at: /var/tmp/packstack/20201123-080236-BeQFDE/openstack-setup.log
Installing:
Clean Up [ DONE ]
Discovering ip protocol version [ DONE ]
Setting up ssh keys [ DONE ]
Preparing servers [ DONE ]
Pre installing Puppet and discovering hosts' details [ DONE ]
Preparing pre-install entries [ DONE ]
Setting up CACERT [ DONE ]
Preparing AMQP entries [ DONE ]
Preparing MariaDB entries [ DONE ]
Fixing Keystone LDAP config parameters to be undef if empty[ DONE ]
Preparing Keystone entries [ DONE ]
Preparing Glance entries [ DONE ]
Checking if the Cinder server has a cinder-volumes vg[ DONE ]
Preparing Cinder entries [ DONE ]
Preparing Nova API entries [ DONE ]
Creating ssh keys for Nova migration [ DONE ]
Gathering ssh host keys for Nova migration [ DONE ]
Preparing Nova Compute entries [ DONE ]
Preparing Nova Scheduler entries [ DONE ]
Preparing Nova VNC Proxy entries [ DONE ]
Preparing OpenStack Network-related Nova entries [ DONE ]
Preparing Nova Common entries [ DONE ]
Preparing Neutron LBaaS Agent entries [ DONE ]
Preparing Neutron API entries [ DONE ]
Preparing Neutron L3 entries [ DONE ]
Preparing Neutron L2 Agent entries [ DONE ]
Preparing Neutron DHCP Agent entries [ DONE ]
Preparing Neutron Metering Agent entries [ DONE ]
Checking if NetworkManager is enabled and running [ DONE ]
Preparing OpenStack Client entries [ DONE ]
Preparing Horizon entries [ DONE ]
Preparing Gnocchi entries [ DONE ]
Preparing Redis entries [ DONE ]
Preparing Ceilometer entries [ DONE ]
Preparing Puppet manifests [ DONE ]
Copying Puppet modules and manifests [ DONE ]
Applying 192.168.100.22_controller.pp
192.168.100.22_controller.pp: [ DONE ]
Applying 192.168.100.22_network.pp
192.168.100.22_network.pp: [ DONE ]
Applying 192.168.100.24_compute.pp
Applying 192.168.100.23_compute.pp
192.168.100.23_compute.pp: [ DONE ]
192.168.100.24_compute.pp: [ DONE ]
Applying Puppet manifests [ DONE ]
Finalizing [ DONE ]
**** Installation completed successfully ******
Additional information:
* Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
* File /root/keystonerc_admin has been created on OpenStack client host 192.168.100.22. To use the command line tools you need to source the file.
* To access the OpenStack Dashboard browse to http://192.168.100.22/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
* The installation log file is available at: /var/tmp/packstack/20201123-080236-BeQFDE/openstack-setup.log
* The generated manifests are available at: /var/tmp/packstack/20201123-080236-BeQFDE/manifests
[root@ct ~]#
查看用户名和密码
[root@ct ~]# ls
anaconda-ks.cfg keystonerc_admin openstackbak.txt openstack.txt
[root@ct ~]# cat keystonerc_admin
unset OS_SERVICE_TOKEN
export OS_USERNAME=admin
export OS_PASSWORD='123123'
export OS_AUTH_URL=http://192.168.100.22:5000/v3
export PS1='[\u@\h \W(keystone_admin)]\$ '
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_IDENTITY_API_VERSION=3
访问查看