使用kolla-ansible部署OpenStack。
由于环境有限就使用VMware虚拟机进行操作,部署一个单实例的。
关于OpenStack的概念,历史再次就不在赘述了,直接开搞吧。
Linux系统初始配置。
1、关闭selinux和防火墙。
[root@CFCA ~]# systemctl stop firewalld.service 关闭防火墙
[root@CFCA ~]# systemctl disable firewalld 开机关闭
2、安装epel源
[root@CFCA ~]# yum install epel-release -y
3、配置hosts
[root@CFCA ~]# cat /etc/hostname
CFCA
[root@CFCA ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.209.6 CFCA
4、同步时间
[root@CFCA ~]# yum install ntp -y
[root@CFCA ~]# systemctl start ntp
[root@CFCA ~]# systemctl enable ntpd.service
5、配置pip镜像源,方便下载Python库
[root@CFCA ~]# mkdir ~/.pip/
[root@CFCA ~]# vim ~/.pip/pip.conf
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
6、配置网卡信息
添加网卡。
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.209.6 netmask 255.255.255.0 broadcast 192.168.209.255
inet6 fe80::97dd:b327:4a4e:afdb prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:7d:60:e3 txqueuelen 1000 (Ethernet)
RX packets 952964 bytes 1426235645 (1.3 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 598664 bytes 45943842 (43.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens35: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:0c:29:7d:60:ed txqueuelen 1000 (Ethernet)
RX packets 5310 bytes 1766547 (1.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@CFCA network-scripts]# cp ifcfg-ens32 ifcfg-35
[root@CFCA network-scripts]# vim ifcfg-ens35
TYPE=Ethernet
BOOTPROTO=none
NAME=ens35
DEVICE=ens35
ONBOOT=yes
安装基础包和docker服务
1、安装基础包
[root@CFCA ~]# yum install python-devel libffi-devel gcc openssl-devel git python-pip -y
[root@CFCA ~]# pip install -U pip #升级一下pip
[root@CFCA ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 #安装一下必要的系统工具
2、添加docker yum源并安装docker
[root@CFCA ~]# systemctl stop libvirtd.service && systemctl disable libvirtd.service && systemctl status libvirtd.service
[root@CFCA ~]# yum remove docker docker-io docker-selinux python-docker-py 如果已经安装了docker的话先卸载了,以免不兼容
添加docker-ce yum源并安装docker-ce
[root@CFCA ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@CFCA ~]# yun install docker-ce 安装docker-ce社区版本
[root@CFCA ~]# systemctl start docker && systemctl enable docker && systemctl status docker 启动docker
3、设置docker volume卷挂载方式
[root@CFCA ~]# mkdir /etc/systemd/system/docker.service.d
[root@CFCA ~]tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
[Service]
MountFlags=shared
EOF
[root@CFCA ~]# cat /etc/systemd/system/docker.service.d/kolla.conf
[Service]
MountFlags=shared
注:加上MountFlags=shared后,当docker宿主机新增分区时,docker服务不用重启。如果不加docker服务服务重启,docker中的实例才可以使用新加的磁盘或分区。 添加这个参考后,后期在openstack中使用cinder存储服务时,新加磁盘比较方便。
4,指定docker镜像加速器
[root@CFCA ~]#vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://e9yneuy4.mirror.aliyuncs.com"]
}
注:如果需要使用自己的本地私有仓库,写成如下:
{
"registry-mirrors": ["https://e9yneuy4.mirror.aliyuncs.com"]
"insecure-registries": ["192.168.1.63:4000"]
}
[root@CFCA ~]#systemctl daemon-reload #修改了启动脚本,需要执行
[root@CFCA ~]# systemctl enable docker && systemctl restart docker && systemctl status docker
安装kolla-ansible
1、安装ansible
[root@CFCA ~]# yum install ansible -y
2、安装kolla-ansible
下载kolla-ansible的代码
[root@CFCA ~]#git clone http://git.trystack.cn/openstack/kolla-ansible -b stable/pike #下载pike版本的openstack
[root@CFCA ~]# ll -d kolla-ansible
drwxr-xr-x. 13 root root 4096 10月 30 19:58 kolla-ansible
3、安装kolla-ansible需要的依赖包
[root@CFCA ~]# cd kolla-ansible/
[root@CFCA kolla-ansible]# pip install .
4、复制kolla-ansible相关的配置文件
[root@CFCA kolla-ansible]# cp -r etc/kolla/* /etc/kolla/
[root@CFCA kolla-ansible]# cp ansible/inventory/* /etc/kolla/
[root@CFCA kolla-ansible]# cd /etc/kolla/
[root@CFCA kolla]# ll
总用量 36
-rw-r--r--. 1 root root 6995 10月 30 20:08 all-in-one 安装单节点OpenStack的ansible自动安装配置文件
-rw-r--r--. 1 root root 12799 10月 30 20:05 globals.yml OpenStack部署的自定义配置文件
-rw-r--r--. 1 root root 7426 10月 30 20:08 multinode 安装多节点OpenStack的ansible自动安装配置文件
-rw-r--r--. 1 root root 4034 10月 30 20:05 passwords.yml OpenStack中各个服务的密码
5、修改虚拟机类型为qemu
如果是在虚拟机里装kolla,希望可以启动再启动虚拟机,那么你需要把virt_type=qemu,默认是kvm。如果vmware开了“虚拟化Intel VT”功能,就不用写这个了。
[root@CFCA kolla-ansible]# mkdir /etc/kolla/config/nova
[root@CFCA ~]# cd /etc/kolla/config/nova/
[root@CFCA nova]# vim nova-compute.conf
[libvirt]
virt_type=qemu
cpu_mode = none
自定义kolla-ansible安装OpenStack的相关配置文件
1、自动生成OpenStack各服务的密码文件
[root@CFCA kolla]# which kolla-genpwd
/usr/bin/kolla-genpwd
[root@CFCA kolla]# rpm -qf /usr/bin/kolla-genpwd
文件 /usr/bin/kolla-genpwd 不属于任何软件包
[root@CFCA kolla]# kolla-genpwd 产生随机密码
[root@CFCA kolla]# vim passwords.yml
158 keystone_admin_password: 123456 这是登录Dashboard,admin使用的密码
2、编辑/etc/kolla/globals.yml 自定义OpenStack中部署事项
15 kolla_base_distro: "centos"
18 kolla_install_type: "binary"
21 openstack_release: "pike"
31 kolla_internal_vip_address: "192.168.199.3"
73 network_interface: "ens32"
88 neutron_external_interface: "ens35"
151 enable_haproxy: "no"
开始基于kolla-ansible安装OpenStack私有云
1、生成SSH Key并授信本节点
[root@CFCA kolla]# ssh-keygen
[root@CFCA kolla]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@CFCA
2、配置单节点清单文件
[root@CFCA kolla]# vim /etc/kolla/all-in-one
[control]
CFCA
[network]
CFCA
[compute]
CFCA
[storage]
CFCA
[monitoring]
CFCA
[deployment]
CFCA
开始部署OpenStack
1、对主机进行预部署检查:
[root@CFCA kolla]# kolla-ansible -i /etc/kolla/all-in-one prechecks
2、拉取镜像
[root@CFCA kolla]# kolla-ansible -i /etc/kolla/all-in-one pull
查看一下下载的镜像
[root@CFCA ~]# docker images|grep pike
kolla/centos-binary-keystone pike bf1af4f8f9c0 2 months ago 796MB
kolla/centos-binary-nova-compute pike b2d936eac2f0 2 months ago 1.35GB
kolla/centos-binary-nova-placement-api pike d6c34e9fc6de 2 months ago 862MB
kolla/centos-binary-nova-api pike ac0f60011832 2 months ago 862MB
kolla/centos-binary-nova-ssh pike b525884e7686 2 months ago 830MB
kolla/centos-binary-nova-consoleauth pike 9b6d1ae9a337 2 months ago 810MB
kolla/centos-binary-nova-scheduler pike 6b16f02d9bd2 2 months ago 810MB
kolla/centos-binary-nova-novncproxy pike 1f5f19ef1b38 2 months ago 811MB
kolla/centos-binary-nova-conductor pike 82bc6e66c49d 2 months ago 810MB
3、实际的OpenStack部署:
[root@CFCA kolla]# kolla-ansible -i /etc/kolla/all-in-one deploy
#因为前面已经下载的镜像,所以这时,安装会快一些。如果前面没有下载镜像,
那么这时,还会边下载各种openstack相关的镜像边部署docker实例。
最后返回如下信息,执行完成,至此安装完成
PLAY RECAP **************************************************************************************************************************
CFCA : ok=212 changed=135 unreachable=0 failed=0
4、验证部署:
[root@CFCA kolla]# kolla-ansible -i /etc/kolla/all-in-one post-deploy
PLAY RECAP **************************************************************************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0
这样就创建了/etc/kolla/admin-openrc.sh 包含了OpenStack登录的账号。
[root@CFCA kolla]# ll /etc/kolla/admin-openrc.sh
-rw-r--r--. 1 root root 324 10月 31 11:03 /etc/kolla/admin-openrc.sh
[root@CFCA kolla]# more /etc/kolla/admin-openrc.sh
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=123456 账号和密码
export OS_AUTH_URL=http://192.168.209.6:35357/v3
export OS_INTERFACE=internal
export OS_IDENTITY_API_VERSION=3
export OS_REGION_NAME=RegionOne
5、测试,192.168.209.6 访问成功。