美文网首页openstack
kolla-ansible部署OpenStack多节点

kolla-ansible部署OpenStack多节点

作者: 不二啊1 | 来源:发表于2018-06-14 16:48 被阅读0次

    1、准备环境:

    物理机或者虚拟机三台(本文使用CentOS7系统,虚拟机环境)
    一台deploy,两块网卡(ens192、ens224)
    一台control+network,两块网卡(ens192、ens224)
    一台compute+storage,三块网卡(ens192、ens224、ens256)
    compute计算节点加一块硬盘

    1.1 网络配置
    • deploy:
      vim /etc/sysconfig/network-scripts/ifcfg-ens192
      BOOTPROTO=static
      DEVICE=ens192
      ONBOOT=yes
      IPADDR=10.24.3.10
      NETMASK=255.255.255.0
      GATEWAY=10.24.3.254
      
      
    • control:
      ens-192配置ip:
      vim /etc/sysconfig/network-scripts/ifcfg-ens192
      TYPE=Ethernet
      BOOTPROTO=static
      DEVICE=ens192
      ONBOOT=yes
      IPADDR=10.24.3.12
      NETMASK=255.255.255.0
      GATEWAY=10.24.3.254
      
      

    ens-224网卡配置三个子接口(xvlan),分别为:

    1. ens-224.10
    vim /etc/sysconfig/network-scripts/ifcfg-ens224.10
    VLAN=yes
    DEVICE=ens224.10
    BOOTPROTO=static
    ONBOOT=yes
    TYPE=Ethernet
    IPADDR=192.168.10.20
    NETMASK=255.255.255.0
    
    
    vim /etc/sysconfig/network-scripts/ifcfg-vlan10
    VLAN=yes
    VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD
    DEVICE=vlan10
    PHYSDEV=ens224
    BOOTPROTO=static
    ONBOOT=yes
    TYPE=Ethernet
    IPADDR=192.168.10.20
    NETMASK=255.255.255.0
    
    
    1. ens-224.20
    vim /etc/sysconfig/network-scripts/ifcfg-ens224.20
    VLAN=yes
    DEVICE=ens224.20
    BOOTPROTO=static
    ONBOOT=yes
    TYPE=Ethernet
    IPADDR=192.168.20.20
    NETMASK=255.255.255.0
    
    
    vim /etc/sysconfig/network-scripts/ifcfg-vlan20
    VLAN=yes
    VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD
    DEVICE=vlan20
    PHYSDEV=ens224
    BOOTPROTO=static
    ONBOOT=yes
    TYPE=Ethernet
    IPADDR=192.168.20.20
    NETMASK=255.255.255.0
    
    
    1. 3ns-224.30
    vim /etc/sysconfig/network-scripts/ifcfg-ens224.30
    VLAN=yes
    DEVICE=ens224.30
    BOOTPROTO=static
    ONBOOT=yes
    TYPE=Ethernet
    IPADDR=192.168.30.20
    NETMASK=255.255.255.0
    
    
    vim /etc/sysconfig/network-scripts/ifcfg-vlan30
    VLAN=yes
    VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD
    DEVICE=vlan30
    PHYSDEV=ens224
    BOOTPROTO=static
    ONBOOT=yes
    TYPE=Ethernet
    IPADDR=192.168.30.20
    NETMASK=255.255.255.0
    
    

    ens256配置ip:

    # 外网网卡配置
    vim /etc/sysconfig/network-scripts/ifcfg-ens256
    DEVICE=ens256
    BOOTPROTO=none
    ONBOOT=yes
    TYPE=Ethernet
    
    • compute:

    ens192和ens224配置和control一样,ens224配置三个子接口,子接口ip网段,VLAN不换,只更改IP:

    vim /etc/sysconfig/network-scripts/ifcfg-ens192
    BOOTPROTO=static
    DEVICE=ens192
    ONBOOT=yes
    IPADDR=10.24.3.11
    NETMASK=255.255.255.0
    GATEWAY=10.24.3.254
    
    vim /etc/sysconfig/network-scripts/ifcfg-ens224.10
    IPADDR=192.168.10.10
    
    vim /etc/sysconfig/network-scripts/ifcfg-ens224.20
    IPADDR=192.168.20.10
    
    vim /etc/sysconfig/network-scripts/ifcfg-ens224.30
    IPADDR=192.168.30.10
    
    
    1.2 重启网卡
    systemctl restart network 
    
    ip a 查看网卡信息
    

    ping命令检测,主机是否连通,例:[root@compute ~]# ping 192.168.20.10

    1.3 compute新添加硬盘分区初始化
    fdisk -l
    pvcreate /dev/sdb
    vgcreate cinder-volumes /dev/sdb
    

    【deploy上操作以下内容,部署节点服务器】

    2、准备部署

    2.1 安装依赖关系

    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
    
    

    2.2 安装部署工具【ansible、kolla-ansible】

    yum install ansible
    pip install kolla-ansible
    

    2.3
    将globals.yml和passwords.yml复制到/etc/kolla目录

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

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

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

    3、下载kolla源码

    若没有git命令,手动安装yum install -y git

    3.1 获取Kolla和Kolla-Ansible存储库

    git clone https://github.com/openstack/kolla
    git clone https://github.com/openstack/kolla-ansible
    

    3.2 Kolla-ansible在etc/kolla中保存配置文件(globals.yml和passwords.yml)将配置文件复制到/etc/kolla目录

    cp -r kolla-ansible/etc/kolla /etc/kolla/
    

    3.3 Kolla-ansible将库存文件(all-in-one和multinode)保存在ansible / inventory中。
    现将清单文件复制到当前目录

    cp kolla-ansible/ansible/inventory/* .
    

    4、准备部署

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

    kolla-genpwd
    

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

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

    4.2 配置multinode文件

    [control]
    10.24.3.12 ansible_user=root ansible_password=1234 ansible_become=true
    
    [network]
    10.24.3.12 ansible_user=root ansible_password=1234 ansible_become=true
    
    [external-compute]
    10.24.3.11 ansible_user=root ansible_password=1234 ansible_become=true
    
    [monitoring]
    10.24.3.12 ansible_user=root ansible_password=1234 ansible_become=true
    
    [storage]
    10.24.3.11 ansible_user=root ansible_password=1234 ansible_become=true
    
    [deployment]
    localhost       ansible_connection=local
    
    

    检测:确认inventory配置文件是否正确:

    ansible -m ping all
    
    结果:
    [root@deploy /]# ansible -m ping all
    10.24.3.11 | SUCCESS => {
        "changed": false, 
        "ping": "pong"
    }
    10.24.3.12 | SUCCESS => {
        "changed": false, 
        "ping": "pong"
    }
    

    4.3 编辑globals.yml配置文件

    kolla_base_distro: "centos"
    # binary使用像apt或yum这样的软件仓库,source使用原始源代码归档,git存储库或本地源代码目录
    kolla_install_type: "source"  
    openstack_release: "queens"  # 使用的版本
    
    kolla_internal_vip_address: "192.168.10.120"  # 内部VIP
    kolla_external_vip_address: "10.24.3.120"  # 外部VIP
    
    network_interface: "ens224.10"
    kolla_external_vip_interface: "ens192"
    api_interface: "ens224.10"
    
    storage_interface: "ens224.20"
    cluster_interface: "ens224.20"
    tunnel_interface: "ens224.30"
    
    # 接口是活动的,没有IP地址。否则,实例将无法访问外部网络
    neutron_external_interface: "ens256"
    
    enable_cinder: "yes"
    
    

    5、开始部署

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

    6、使用OpenStack

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

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

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

    pip install python-openstackclient python-glanceclient python-neutronclient
    

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

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

    打开浏览器输入10.24.3.120(外部VIP),用户admin ,密码admin 可登录openstack_dashboard,如图所示:

    openstack_dashboard.png

    相关文章

      网友评论

        本文标题:kolla-ansible部署OpenStack多节点

        本文链接:https://www.haomeiwen.com/subject/fmxseftx.html