kolla-ansible部署OpenStack多节点

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
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,064评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,606评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,011评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,550评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,465评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,919评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,428评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,075评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,208评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,185评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,191评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,914评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,482评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,585评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,825评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,194评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,703评论 2 339

推荐阅读更多精彩内容