本篇博客是开源云平台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

  • 控制节点安装
    虚拟机硬件设置

openstack单机一键脚本os7 openstack一键安装部署_centos

openstack单机一键脚本os7 openstack一键安装部署_openstack单机一键脚本os7_02


openstack单机一键脚本os7 openstack一键安装部署_vim_03


openstack单机一键脚本os7 openstack一键安装部署_CentOS_04


两台计算节点

openstack单机一键脚本os7 openstack一键安装部署_CentOS_05


openstack单机一键脚本os7 openstack一键安装部署_vim_06


注意计算节点网卡我选的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