1.初始条件

(1)已经存在的openstack环境(controller1,compute1,compute2)
(2) 一台待添加的计算机节点( compute3)

2.环境实例

主机名 硬件,系统 网卡 IP
controller1 16g 500g,centos-2003 enp7s0 192.168.100.11
controller1 16g 500g,centos-2003 enp8s0 10.110.45.246
compute1 16g 3t,centos-2003 enp8s0 192.168.100.12
compute1 16g 3t,centos-2003 enp9s0 10.110.45.247
compute2 16g 3t,centos-2003 enp7s0 192.168.100.13
compute2 16g 3t,centos-2003 enp8s0 10.110.45.248
compute3 16g 3t,centos-2003 enp7s0 192.168.100.14
compute3 16g 3t,centos-2003 enp8s0 10.110.45.249

3、初始化环境

(1)配置 yum 源。(在新增节点)

由于前期已经在校园网上配置了完整的yum源,故直接拿来使用。
将ftp://10.110.45.221/bendi.repo下载到本地,并上传至所有节点的/etc/yum.repos.d目录。

  1. [root@compute3 ~]# scp root@10.110.45.221:/opt/bendi.repo /etc/yum.repos.d/
  2. 注:如果不知道密码,可以使用其他方法复制。
  3. [root@compute3 ~]# cd /etc/yum.repos.d
  4. [root@compute3 ~]# mkdir bak
  5. [root@compute3 ~]# mv C* bak
  6. [root@compute3 ~]# yum clean all
  7. [root@compute3 ~]#yum repolist

(2)修改个节点基础配置

在控制节点上执行

  1. hostnamectl set-hostname controller1
  2. vi /etc/hosts
  3. 写入
  4. 192.168.100.11 controller1
  5. 192.168.100.12 compute1
  6. 192.168.100.13 compute2
  7. 192.168.100.14 compute3

在计算节点1上执行

  1. hostnamectl set-hostname compute1
  2. vi /etc/hosts
  3. 写入
  4. 192.168.100.11 controller1
  5. 192.168.100.12 compute1
  6. 192.168.100.13 compute2
  7. 192.168.100.14 compute3

在计算节点2上执行

  1. hostnamectl set-hostname compute2
  2. vi /etc/hosts
  3. 写入
  4. 192.168.100.11 controller1
  5. 192.168.100.12 compute1
  6. 192.168.100.13 compute2
  7. 192.168.100.14 compute3

在新增计算节点3上执行

  1. hostnamectl set-hostname compute3
  2. vi /etc/hosts
  3. 写入
  4. 192.168.100.11 controller1
  5. 192.168.100.12 compute1
  6. 192.168.100.13 compute2
  7. 192.168.100.14 compute3

4、在新增节点上做预处理

  1. echo 'net.ipv4.ip_forward=1 ' >>/etc/sysctl.conf
  2. echo 'net.ipv4.tcp_tw_recycle=1 ' >>/etc/sysctl.conf
  3. echo 'net.ipv4.tcp_tw_reuse=1 ' >>/etc/sysctl.conf
  4. sysctl -p
  5. chmod +x /etc/rc.d/rc.local
  6. yum install -y mlocate lrzsz tree vim nc nmap wget bash-completion bash-completion-extras cowsay sl htop iotop iftop lsof net-tools sysstat unzip bc psmisc ntpdate wc telnet-server bind-utils sshpass
  7. systemctl stop firewalld
  8. systemctl disable firewalld
  9. setenforce 0
  10. sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
  11. systemctl stop NetworkManager
  12. systemctl disable NetworkManager
  13. yum clean all
  14. yum makecache
  15. ntpdate ntp1.aliyun.com
  16. echo '*/30 * * * * /sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1' >>/var/spool/cron/root

5、在控制节点(controller1)上修改packstack的配置文件

在已有环境中(controller1中)找到之前生成的配置文件openstack.txt,修改CONFIG_COMPUTE_HOSTS=192.168.100.12,192.168.100.13

CONFIG_COMPUTE_HOSTS=192.168.100.12,192.168.100.13,192.168.100.14
保存退出

6、在控制节点(controller1)执行packstack配置文件

packstack answer -file=openstack.txt
执行过程根据配置来定,一般要等20分钟。成功后可以用openstack compute service list来验证