安装epel-release ;安装python-pip,升级到最新
yum install epel-release
yum install python-pip
pip install -U pip
安装依赖包
yum install python-devel libffi-devel gcc openssl-devel libselinux-python
安装ansible
yum install ansible
安装docker
curl -sSL https://get.docker.io | bash
配置docker服务,这里的配置,根据官网的提示是为了防止kolla-ansible部署neutron-dhcp-agent 容器时候抛出 APIError/HTTPError
# Create the drop-in unit directory for docker.service
mkdir -p /etc/systemd/system/docker.service.d
# Create the drop-in unit file
tee /etc/systemd/system/docker.service.d/kolla.conf <<-'EOF'
[Service]
MountFlags=shared
EOF
重启dockers服务
systemctl daemon-reload
systemctl restart docker
安装docker python
pip install -U docker
安装 升级python jinja版本
pip install -U Jinja2
安装ntp
yum install ntp
systemctl enable ntpd.service
systemctl start ntpd.service
关闭libvirtd服务
系统可能默认开启了libvirtd服务,需要关闭
systemctl stop libvirtd.service
systemctl disable libvirtd.service
安装kolla-ansible
运行这个命令会安装最新稳定版本的kolla-ansible
pip install kolla-ansible
复制globals.yml 和 passwords.yml 到 /etc
cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/kolla/
复制inventory 文件 (all-in-one 和 multinode) 到 当前目录
cp /usr/share/kolla-ansible/ansible/inventory/* .
配置docker本地镜像仓库
默认Docker的Registry是使用5000端口,对于OpenStack来说,有端口冲突,所以需要改成4000。Pull并启动registry镜像。
docker run -d -v /opt/registry:/var/lib/registry -p 4000:5000 \
--restart=always --name registry registry:2.3
说明:
Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定;这里表示将宿主机的
/opt/registry目录挂在到容器的/var/lib/registry目录
-p 4000:5000表示将宿主机的4000映射到容器的5000端口
--name registry是给这个容器起名为registry
registry:2.3表示docker拉取的镜像是版本为2.3的registry
将之前下载的kolla镜像解压到/opt/registry目录中
tar zxf centos-binary-registry-ocata.tar.gz -C /opt/registry/
查看镜像仓库是否正常,如果返回一个json数据表示正常工作,这里的ip替换为docker仓库所在的主机IP
curl http://xxx.xxx.xxx.xxx:4000/v2/\_catalog
有时候会在准备运行kolla-ansible deploy -i出现这种报错
Error:server gave HTTP response to HTTPS client
需要配置,这里的ip就是registry所在的主机ip
tee /etc/docker/daemon.json <<-'EOF'
{ "insecure-registries":["xxx.xxx.xxx.xxx:4000"]}
EOF
重启Docker服务
systemctl daemon-reload
systemctl restart docker