1、安装基础软件包
yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python git wget vim yum-utils
2、设置主机名 以及hosts
hostnamectl set-hostname openstack && bash
vim /etc/hosts #设置hosts 先清空hosts文件 然后添加如下
192.168.122.10 openstack openstack
192.168.122.10 kolla kolla
#或者使用
tee /etc/hosts <<-'EOF'
192.168.122.10 openstack openstack
192.168.122.10 kolla kolla
EOF
3、关闭系统安全设置
#关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
#关闭网络管理组件
systemctl stop NetworkManager && systemctl disable NetworkManager
#关闭selinux
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
1、pip是python的包管理器,ansible是基于python开发的,因此需要安装pip,安装相应的python包,默认系统都不带pip。
#下载pip
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
#安装pip
python get-pip.py
#更新其他包
pip install -U setuptools
2、安装docker,docker是本次部署的关键,因此需要安装docker。
#添加docker软件仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache
#安装docker-ce不是docker
yum -y install docker-ce
#启动服务
systemctl enable docker
systemctl start docker
#修改docker镜像的源
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
EOF
systemctl daemon-reload
service docker restart
3、配置pip加速
cd ~
mkdir .pip
tee .pip/pip.conf << EOF
[global]
[index-url=http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
EOF
kolla-ansible部署是需要使用ansible,它是一款自动化的工具,是基于python开发。因此ansible是必须部署。
#获取epel的yum文件,否则ansible可能找不到包
yum install epel-release -y
#安装ansible
yum install ansible -y
#试过很多次都要先安装这个报告
pip install pbr
#开始安装kolla-ansible,要带上--ignore-installed ,否则可能会报错
pip install -i https://mirrors.aliyun.com/pypi/simple/ kolla-ansible --ignore-installed
#创建kolla的文件夹,后续部署的时候很多openstack的配置文件都会在这
mkdir -p /etc/kolla
chown $USER:$USER /etc/kolla
#复制ansible的部署配置文件
cp -v /usr/share/kolla-ansible/ansible/inventory/* /etc/kolla/.
#负责gloable.yml和password.yml到目录
cp -rv /usr/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/.
#检查`etc/kolla`文件夹下的文件
1、修改ansible的配置文件。
vi /etc/ansible/ansible.cfg
[defaults]
host_key_checking=False #line 71
pipelining=True #line 401
forks=100 #line 20
2、all-in-one配置节点清单文件 /etc/kolla/all-in-one
如果配置本地免密登录可以不需要使用
ansible_user=root ansible_password=openstack ansible_become=true
使用vim进行替换
1,$s/localhost ansible_connection=local/openstack ansible_user=root ansible_password=openstack ansible_become=true/
[control]
openstack ansible_user=root ansible_password=openstack ansible_become=true
[network]
openstack ansible_user=root ansible_password=openstack ansible_become=true
[compute]
openstack ansible_user=root ansible_password=openstack ansible_become=true
[storage]
openstack ansible_user=root ansible_password=openstack ansible_become=true
[monitoring]
openstack ansible_user=root ansible_password=openstack ansible_become=true
[deployment]
openstack ansible_user=root ansible_password=openstack ansible_become=true
3、global.yml添加
#选择下载的基础镜像
kolla_base_distro: "centos"
#选择的安装方法,2选1。binary二进制安装,source源码安装
kolla_install_type: "binary"
#选择OpenStack的版本标签,
openstack_release: "yoga"
#OpenStack内部管理网络地址,通过该IP访问OpenStack Web页面进行管理。如果启用了高可用,需要设置为VIP(浮动IP)
kolla_internal_vip_address: "192.168.122.10"
#OpenStack内部管理网络地址的网卡接口
network_interface: "ens33"
#此网卡应该在没有IP地址的情况下处于活动,如果不是,那么OpenStack云平台中的云主机实例将无法访问外部网络。(存在IP时br-ex桥接就不成功)
neutron_external_interface: "ens34"
#关闭高可用
enable_haproxy: "no"
#关闭cinder(块存储)
enable_cinder: "yes"
enable_cinder_backend_lvm: "yes"
#指定nova-compute守护进程使用的虚拟化技术。(kvm好像有点问题,大家可以试试,看看你们能不能过nova下载)nova-compute>是一个非常重要的守护进程,负责创建和终止虚拟机实例,即管理虚拟机实例的生命周期。
nova_compute_virt_type: "qemu" #在物理机上部署时无需设置(默认kvm) ,仅在虚拟机中部署kolla-ansible-openstack时设置qemu
4、生成密码 并修改webui的密码
kolla-genpwd
vim /etc/kolla/passwords.yml
/keystone_admin_password
5、cinder的配置准备,官方文档未说明的点,需要提前创建好cinder使用的vgs(如果使用cinder请忽略。。)
pvcreate /dev/sdb
vgcreate cinder-volumes /dev/sdb
环境预检查 没问题直接next
kolla-ansible -i /etc//kolla/all-in-one prechecks
拉取镜像 时间有点长 大概15Minutes
kolla-ansible -i /etc/kolla/all-in-one pull
正式部署 大概15Minutes
kolla-ansible -i /etc/kolla/all-in-one deploy
验证安装
kolla-ansible -i /etc/kolla/all-in-one post-deploy
cat /etc/kolla/admin-openrc.sh
/etc/kolla/all-in-one pull
正式部署 大概15Minutes
kolla-ansible -i /etc/kolla/all-in-one deploy
验证安装
kolla-ansible -i /etc/kolla/all-in-one post-deploy
cat /etc/kolla/admin-openrc.sh