本篇博客是开源云平台openstack自动化安装课程,课程采用的3个虚拟机节点作为演示环境
一实验环境
控制节点
U:双核双线程-CPU虚拟化开启
内存:8G 硬盘:300G+1024G(充当CEPH块存储)
网卡:VM1-192.168.100.10 NAT-20.0.0.10
操作系统:Centos 7.7(1908)-最小化安装
计算节点1(网络模块)
U:双核双线程-CPU虚拟化开启
内存:6G 硬盘:300G+1024G(充当CEPH块存储)
网卡:VM1-192.168.100.11
操作系统:Centos 7.7(1908)-最小化安装
计算节点2(网络模块)
计算节点2(网络模块)
CPU:双核双线程-CPU虚拟化开启
内存:6G 硬盘:300G+1024G(充当CEPH块存储)
网卡:VM1-192.168.100.12
操作系统:Centos 7.7(1908)-最小化安装
环境地址规划
主机名 内存(G) 硬盘(G) 网卡 系统
ct 8 300+1024 VM1:192.168.100.10 NAT:20.0.0.10 Centos-7.7
c1 8 300+1024 VM1:192.168.100.11 Centos-7.7
c2 8 300+1024 VM1:192.168.100.12 Centos-7.7
- 控制节点安装
虚拟机硬件设置
两台计算节点
注意计算节点网卡我选的nat模式是因为笔者环境原因我的最小化安装系统没有 ifconfig vim 这两条命令需要
yum -y install net-tools和yum -y install vim安装
装完之后再将网卡改成仅主机模式*
设置控制节点网卡
vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=629099a1-8d48-455e-b2ea-93b670d51a59
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0
#GATEWAY=192.168.100.1
DNS1=8.8.8.8
DNS2=114.114.114.114
- 将光盘挂在并配置yum创库
vim /etc/fstab
/dev/cdrom /mnt iso9660 defaults 0 0
//将软件包上传到opt目录下
[root@localhost ~]# cd /opt
[root@localhost opt]# ls
openstack_rocky.tar.gz
[root@localhost opt]# tar zxfv openstack_rocky.tar.gz
//制作本地源
[root@localhost opt]# cd /etc/yum.repos.d
[root@localhost 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@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv C* bak
[root@localhost yum.repos.d]# ls
bak
[root@localhost yum.repos.d]# cp bak/CentOS-Base.repo local.repo
[root@localhost yum.repos.d]# ls
bak local.repo
[root@localhost yum.repos.d]# vim local.repo
[openstack]
name=openstack
baseurl=file:///opt/openstack_rocky
gpgcheck=0
enabled=1
[centos]
name=centos
baseurl=file:///mnt
gpgcheck=0
enabled=1
//将配置好的文件发给两台计算节点
[root@localhost yum.repos.d]# scp local.repo root@192.168.100.11:/etc/yum.repos.d
[root@localhost yum.repos.d]# scp local.repo root@192.168.100.12:/etc/yum.repos.d
关闭核心防护防火墙及网络管理
[root@control yum.repos.d]# systemctl stop firewalld
[root@control yum.repos.d]# systemctl disable firewalld
[root@control yum.repos.d]# setenforce 0
[root@control yum.repos.d]# vi /etc/sysconfig/selinux
SELINUX=disabled
[root@control yum.repos.d]# systemctl stop NetworkManager
[root@control yum.repos.d]# systemctl disable NetworkManager
配置地址映射
[root@ct ~]# vim /etc/hosts
192.168.100.10 ct
192.168.100.11 c1
192.168.100.12 c2
配置免交互
[root@control yum.repos.d]# ssh-keygen -t rsa ####一路默认回车键
[root@control yum.repos.d]# ssh-copy-id ct ###交互提示 输入yes 然后输入密码 Abc123
[root@control yum.repos.d]# ssh-copy-id c1 ###交互提示 输入yes 然后输入密码 Abc123
[root@control yum.repos.d]# ssh-copy-id c2 ###交互提示 输入yes 然后输入密码 Abc123
同步时间
yum -y install ntpdate
ntpdate ntp.aliyun.com
创建日志文件,和计划性任务表
ntpdate ntp.aliyun.com >>/var/log/ntpdate.log
crontab -e
*/30 * * * * /usr/sbin/ntpdate ntp.aliyun.com >>/var/log/ntpdate.log
##开机自启计划性任务表功能
systemctl restart crond
systemctl enable crond
配置时钟服务器,使得计算节点能够同步时间服务器
yum -y install ntp
vi /etc/ntp.conf
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 ~]# systemctl restart ntpd
[root@ct ~]# systemctl enable ntpd
设置两台计算节点
- 设置网卡
```bash
vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"
UUID="96e35041-d205-4914-87e7-805b6ed6db15"
DEVICE="eth0"
ONBOOT="yes"
IPADDR=192.168.100.11 ///计算节点2将IP改成192.168.100.12
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
- 挂在光盘配置yum仓库
vim /etc/fstab
/dev/cdrom /mnt iso9660 defaults 0 0
//将软件包上传到opt目录下
[root@localhost ~]# cd /opt
[root@localhost opt]# ls
openstack_rocky.tar.gz
[root@localhost opt]# tar zxfv openstack_rocky.tar.gz
//制作本地源
[root@localhost opt]# cd /etc/yum.repos.d
[root@localhost 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@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv C* bak
[root@localhost yum.repos.d]# ls
bak
关闭核心防护防火墙及网络管理
[root@control yum.repos.d]# systemctl stop firewalld
[root@control yum.repos.d]# systemctl disable firewalld
[root@control yum.repos.d]# setenforce 0
[root@control yum.repos.d]# vi /etc/sysconfig/selinux
SELINUX=disabled
[root@control yum.repos.d]# systemctl stop NetworkManager
[root@control yum.repos.d]# systemctl disable NetworkManager
配置地址映射
[root@ct ~]# vim /etc/hosts
192.168.100.10 ct
192.168.100.11 c1
192.168.100.12 c2
配置免交互
[root@control yum.repos.d]# ssh-keygen -t rsa ####一路默认回车键
[root@control yum.repos.d]# ssh-copy-id ct ###交互提示 输入yes 然后输入密码 Abc123
[root@control yum.repos.d]# ssh-copy-id c1 ###交互提示 输入yes 然后输入密码 Abc123
[root@control yum.repos.d]# ssh-copy-id c2 ###交互提示 输入yes 然后输入密码 Abc123
同步时间
yum insatll ntp -y
vi /etc/ntp.conf
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@c1 ~]# systemctl restart ntpd
[root@c1 ~]# systemctl enable ntpd
ntpdate -u 192.168.100.10 >> /var/log/ntpdate.log
crontab -e
systemctl enable crond
在控制节点上安装OpenStack
[root@control ~]# yum -y install openstack-packstack
[root@control ~]# packstack --gen-answer-file=openstack.txt
[root@control ~]#vi openstack.txt
19 CONFIG_MARIADB_INSTALL=y ###第19行 MARIADB数据库默认要安装 ,默认是Y,不需要更改
22 CONFIG_GLANCE_INSTALL=y ###第22行 GLANCE镜像组将必须要装,默认是Y,不需要更改
25 CONFIG_CINDER_INSTALL=y ###第25行 CINDER组件块存储的,必须要装,默认是Y,不需要更改
29 CONFIG_MANILA_INSTALL=n ###第29行MANILA组件是openstack的扩展系统 ,默认N,不需要更改
32 CONFIG_NOVA_INSTALL=y ###第32行NOVA组件是openstack计算组件,默认Y,不需要更改
35 CONFIG_NEUTRON_INSTALL=y ###第35行NEUTRON是openstack的网络组件,默认Y,不需要更改
38 CONFIG_HORIZON_INSTALL=y ###第38行HORIZON是OpenStack的Dashboard组件,默认Y,不需要更改
41 CONFIG_SWIFT_INSTALL=n ###●第41行SWIFT是OpenStack的对象存储组件,默认是Y,在生产环境中一般是不装,所以该n
46 CONFIG_CEILOMETER_INSTALL=y ###第46行CEILOMETER是OpenStack的计量组件 默认是Y,不需要更改
50 CONFIG_AODH_INSTALL=n ###●第50行,默认是Y 需要改n
53 CONFIG_PANKO_INSTALL=n ####第53行, 默认是n 不需要更改
60 CONFIG_HEAT_INSTALL=n ###第60行,HEAT是OpenStack是编排组件 ,默认是n ,不需要更改
[root@control ~]# sed -i -r 's/(.+_PW)=.+/\1=Abc123/' openstack.txt
[root@control ~]# sed -i -r 's/192.168.175.128/192.168.100.10/g' openstack.txt
[root@control ~]# grep -vE "^#|^$" openstack.txt >openstackbak.txt
##自动安装部署###
[root@control ~]# packstack --answer-file=openstack.txt