目前手动部署openstack都很繁琐 so all of people 都在研究怎么能快速 简单的部署openstack 最近也在研究
在官网看到了 kolla的这东东 经过调研 好多人在用 也就义无反顾的 跟随了 开始kolla的时代
一、系统环境
centos7.2 两块网卡 4c 8G 40G
二、kolla是做openstack容器化的镜像 而kolla-ansible是用来部署openstack插件 由于kolla对组建的版本以来较大 so 你懂得 只列出mitaka和ocata的依赖版本
Dependencies for the stable/mitaka branch are:
ComponentMin VersionMax VersionComment
Ansible1.9.4 <2.0.0On deployment host
Docker1.10.0 noneOn target nodes
Docker Python1.6.0 noneOn target nodes
Python Jinja22.6.0 noneOn deployment host
Dependencies for the stable/ocata branch are:
ComponentMin VersionMax VersionComment
Ansible 2.0.0 noneOn deployment host
Docker1.10.0 noneOn target nodes
Docker Python1.8.1 noneOn target nodes
Python Jinja22.8.0 noneOn deployment host
三、安装依赖环境 使用pip来安装kolla
yum install epel-release
yum install python-pip
pip install -U pip
yum install python-devel libffi-devel gcc openssl-devel libselinux-python
四、在目标主机上安装docker 最新版本的kolla需要引擎docker-engine>=1.10.0,!=1.13.0
curl -sSL https://get.docker.io | bash
创建docker.service drop-in单元 用于部署Neutron-dhcp-agent container否则会失败
mkdir -p /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/kolla.conf <<-'EOF'
[Service]
MountFlags=shared
EnvironmentFile=-/etc/sysconfig/docker
#EnvironmentFile=-/etc/sysconfig/docker-storage
#EnvironmentFile=-/etc/sysconfig/docker-network
ExecStart=
ExecStart=/usr/bin/dockerd daemon -H fd:// --mtu 1400 --insecure-registry 192.168.1.61:4000
#ExecStart=/usr/bin/dockerd $DOCKER_OPTS
EOF
加载后重启docker systemctl daemon-reload && systemctl restart docker
更新docker libraries yum install python-docker-py
五、安装ntp服务 用于时间同步 不多说
六、禁用系统中的libvirt
systemctl stop libvirtd.service
systemctl disable libvirtd.service
七、在管理节点安装kolla
pip install kolla-ansible
八、cp globals.yml和passwords.yml到/etc
cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/kolla/
cp /usr/share/kolla-ansible/ansible/inventory/* /usr/share/kolla-ansible/ansible/
九、安装local registry
docker run -d -p 4000:5000 --restart=always -v /data/Iaas/Docker/Volumes/Registry:/var/lib/registry --name registry registry:2
十、/etc/kolla/globals.yml 在Neutron中增加网卡口 如不需要外网 可以不用配置external
kolla_internal_vip_address: "192.168.1.251"
network_interface: "em1"
neutron_external_interface: "em2"
docker_registry: "192.168.1.61:4000"
kolla_install_type: "source"
十一、生成随机密码 在/etc/kolla/passwords.yml
kolla-genpwd
#kolla-ansible -i <
十二、Build container p_w_picpaths
先修改docker mtu /etc/systemd/system/docker.service.d/kolla.conf
pip install tox
find / -name tax.ini && cd /data/kolla
tox -e genconfig
cp /data/kolla/etc/kolla/kolla-build.conf /etc/kolla
kolla-build --base centos --type source --registry 192.168.1.61:4000 --push
kolla-ansible pull
docker p_w_picpaths
十三、部署kolla
kolla-ansible prechecks -i /usr/share/kolla-ansible/ansible/inventory/all-in-one
kolla-ansible deploy -i /usr/share/kolla-ansible/ansible/inventory/all-in-one
docker ps -a
kolla-ansible post-deploy 生成admin-openrc.sh 在/etc/kolla
十四、初始化网络和镜像
. /etc/kolla/admin-openrc.sh
cd /usr/share/kolla-ansible
./init-runonce