虚拟机多节点:

其他多节点:

1、准备环境:

  • 物理机或者虚拟机三台(本文使用公有云的CentOS7系统)
  • control节点 2个网络接口:
  •   eth0:192.168.31.3  eth1:192.168.31.4      外网:10.10.1.1
  • compute节点:
  •   eth0:192.168.31.2
  •        也是cinder节点:添加一块硬盘配置lvm存储
  • 8GB主内存、40GB磁盘空间(视情况而定)

2、准备部署:

  2.1 服务器配置IP

vim /etc/sysconfig/network-scripts/ifcfg-eth0
    systemctl restart network   # 重启网络

  2.2 安装依赖关系

yum install -y epel-release
    yum install -y python-pip
    pip install -U pip

    yum install python-devel libffi-devel gcc openssl-devel libselinux-python
    yum install docker -y
    如果docker有冲突,需要卸载rpm -qa |grep docker ,然后yum remove -y *,最后重装1.12(最新1.13)yum install docker-engine-1.12.6*,启动服务systemctl start docker
    查看cpu是否支持虚拟化
    egrep -c '(vmx|svm)' /proc/cpuinfo

  2.3 安装ansible

yum install ansible

  2.4 安装kolla-ansible,用来部署

pip install kolla-ansible

  2.5 centos7下将globals.yml和passwords.yml复制到/etc/kolla目录

    For CentOS, run:

cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/

    For Ubuntu, run:

cp -r /usr/local/share/kolla-ansible/etc_examples/kolla /etc/

  2.6 将all-in-one和multinode库存文件复制到当前目录。

    For CentOS, run:

cp /usr/share/kolla-ansible/ansible/inventory/* .

    For Ubuntu, run:

cp /usr/local/share/kolla-ansible/ansible/inventory/* .


3 准备在主机上部署OpenStack(如果是多节点需要配置multinode文件)

    3.0 多节点需要配置multinode文件,单节点不需要:

    3.0.1配置如下:

1 [control]
 2 localhost ansible_connection=local 5 
 6 [network:children]
 7 control
 8 
10 [compute]
11 compute主机名 
13 [monitoring]
14 localhost       ansible_connection=local
18 [storage:children] 
    compute 
 21 [deployment] 
  localhost ansible_connection=local

    3.0.2 检查库存配置是否正确

ansible -i multinode all -m ping

  

  3.1 部署中使用的密码存储在/etc/kolla/passwords.yml文件中。
    通过运行下面命令生成随机密码:

kolla-genpwd

    初始化之后,可手动更改keystone_admin_password密码(OpenStack登录密码)

vim /etc/kolla/passwords.yml
      keystone_admin_password:admin

  3.2 编辑globals.yml配置文件

单节点模式:
kolla_base_distro: "centos"
  # binary使用像apt或yum这样的软件仓库,source使用原始源代码归档,git存储库或本地源代码目录
  kolla_install_type: "source"  
  openstack_release: "rocky"  # 使用的版本,master版本我尝试过启动不行

  network_interface: "eth0"  # OpenStack使用的网络接口

  # 第二个接口专用于Neutron外部(或公共)网络,可以是vlan或flat,取决于网络的创建方式。
  # 这个接口应该是活动的,没有IP地址。否则,实例将无法访问外部网络
  neutron_external_interface: "eth1"
  kolla_internal_vip_address: "192.168.31.3"  # et0 ip

多节点模式配置:

kolla_base_distro: "centos"
  # binary使用像apt或yum这样的软件仓库,source使用原始源代码归档,git存储库或本地源代码目录
  kolla_install_type: "source"  
  openstack_release: "rocky"  # 使用的版本
,master版本我尝试过启动不行
network_interface: "eth0" # OpenStack使用的网络接口   # 第二个接口专用于Neutron外部(或公共)网络,可以是vlan或flat,取决于网络的创建方式。   # 这个接口应该是活动的,没有IP地址。否则,实例将无法访问外部网络   neutron_external_interface: "eth1"   kolla_internal_vip_address: "192.168.31.3" # control节点et0 ip

 

4、开始部署

单节点启动:
   4.1.1、带有kolla的引导服务器部署依赖关系 
    kolla-ansible -i ./all-in-one bootstrap-servers
   4.1.2、对主机执行预部署检查 
    kolla-ansible -i ./all-in-one prechecks
   4.1.3、执行OpenStack部署
    kolla-ansible -i ./all-in-one deploy

多节点启动:
   4.2.1、带有kolla的引导服务器部署依赖关系     
    kolla-ansible -i ./multinode bootstrap-servers    
   4.2.2、对主机执行预部署检查     
    kolla-ansible -i ./multinode prechecks   
   4.2.3、执行OpenStack部署     
    kolla-ansible -i ./multinode   deploy


 4.2.1、带有kolla的引导服务器部署依赖关系     
    kolla-ansible -i ./multinode bootstrap-servers    
   4.2.2、对主机执行预部署检查     
    kolla-ansible -i ./multinode prechecks   
   4.2.3、执行OpenStack部署     
    kolla-ansible -i ./multinode   deploy
multinode 
multinode

5、使用OpenStack

  5.1 OpenStack需要一个openrc文件,其中设置了admin用户的凭证。
  要生成这个文件运行以下命令:

kolla-ansible post-deploy
  . /etc/kolla/admin-openrc.sh

  5.2 安装基本的OpenStack CLI客户端:

pip install python-openstackclient python-glanceclient python-neutronclient

  5.3 运行脚本创建示例网络,图像等

. /usr/share/kolla-ansible/init-runonce

  打开浏览器输入机器公有云外网ip 18.68.x.x,用户admin ,密码admin 可登录openstack_dashboard,如图所示:  

    

ansible安装kubernetes ansible安装openstack_python

 

重装记得,删除干净,不然报错

docker stop  $(docker ps -qa)
  docker rm -f   $(docker ps -qa)
  docker volume rm $(docker volume ls -q)

一些坑,,定期更新:

  在公有云上创建的openstack,无法创建instance,提示

 

 

运维虐我千万遍,我对运维如初恋。