Kolla单节点部署OpenStack Ocata

来源:互联网 发布:机器人技术基础知乎 编辑:程序博客网 时间:2024/05/21 08:38

1. 环境说明

我是在某云平台上的虚拟机上部署的OpenStack,所用到的网卡有两个
eth0 172.24.10.47
eth1 192.168.200.13

2. 基础环境配置

2.1 关闭SELinux

编辑 /etc/selinux/config
SELINUX=disabled
可用 sestatus命令查看SELinux状态

2.2 关闭防火墙

systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
firewall-cmd –state

2.3 设置主机名为kolla

编辑/etc/hostname,修改其内容如下:
kolla
或者执行命令
hostnamectl set-hostname kolla
虚拟机重启会变回原来的主机名,可重新执行上述操作修改主机名

2.4 添加IP-域名映射

编辑etc/hosts,修改内容,在最后一行添加:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.24.10.47 kolla
物理机可重启系统,主机名一般都是会变为kolla,
虚拟机可断开ssh连接再重新连接

2.5 添加Epel源

yum install epel-release -y

2.6 安装并启用ntp服务

yum -y install ntp
systemctl enable ntpd.service
systemctl start ntpd.service
执行date命令查看系统时间,若是与本地时间不一致,可执行如下操作
mv /etc/localtime /etc/localtime.backup
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2.7 设置pip源

cd ~
mkdir .pip && cd .pip
cat << end > pip.conf
[global]
index-url = http://pypi.douban.com/simple
trusted-host = pypi.douban.com
‘end’

3. 部署

3.1 安装基础软件包

yum install python-devel libffi-devel gcc openssl-devel git python-pip

3.2 安装Docker

3.2.1 设置repo

tee /etc/yum.repos.d/docker.repo << ‘EOF’
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF

3.2.2 安装Docker

yum install docker-engine-1.12.5 docker-engine-selinux-1.12.5

3.2.3 配置Docker

mkdir /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/kolla.conf << ‘EOF’
[Service]
MountFlags=shared
EOF
若不设置这一项,则后续kolla-ansible无法安装neutron-dhcp-agent容器,并抛出APIError/HTTPError错误

3.2.4 重启docker

systemctl daemon-reload
systemctl enable docker
systemctl restart docker

3.3 搭建私人镜像仓库

3.3.1 搭建私人镜像仓库

docker run -d -v /opt/registry:/var/lib/registry -p 4000:5000 –restart=always –-name registry registry:2
注:此命令运行完毕后,/opt目录下产生了一个空目录registry

3.3.2 下载OpenStack的docker镜像【此镜像要与当前kolla-ansible版本一致】

wget http://tarballs.openstack.org/kolla/images/centos-source-registry-ocata.tar.gz

3.3.3 解压缩openstack的docker镜像到空目录/opt/registry下

tar -zxvf centos-source-registry-ocata.tar.gz -C /opt/registry/

3.3.4 在docker中设置私人镜像服务器的安全认证

编辑 /usr/lib/systemd/system/docker.service,内容如下:
#ExecStart=/usr/bin/dockerd
ExecStart=/usr/bin/dockerd –insecure-registry 172.24.10.30:4000
作用是为私人镜像服务器添加SSL认证,表明我们的私人镜像服务器是安全的,这样才能正常的push镜像到私人服务器,如果不这样设置,则pull镜像时会报错

3.3.5 重启Docker

systemctl daemon-reload
systemctl enable docker
systemctl restart docker
当docker.service配置文件被修改时,执行systemctl daemon-reload才能加载新的配置,如果只是restart docker的话,则新的配置不会被加载

3.4安装ansible和kolla-ansible

3.4.1安装ansible

yum -y install ansible
cd /home

3.4.2 安装kolla-ansible

git clone http://git.trystack.cn/openstack/kolla-ansible –b stable/ocata
cd /home/kolla-ansible/
pip install . 【卸载时用pip uninstall kolla-ansible】

3.4.3复制到/etc/kolla目录下

cp -r etc/kolla /etc/kolla/

3.4.4复制相关文件

cp /home/kolla-ansible/ansible/inventory/* /home/

3.5 部署前的最后准备

3.5.1 配置虚拟机

如果命令egrep -c ‘(vmx|svm)’ /proc/cpuinfo结果非0,则下面的virt_type=kvm
如果命令egrep -c ‘(vmx|svm)’ /proc/cpuinfo结果为0,则下面的virt_type=qemu
mkdir -p /etc/kolla/config/nova
cat << EOF > /etc/kolla/config/nova/nova-compute.conf
[libvirt]
virt_type=kvm
cpu_mode=none
EOF

3.5.2 生成密码文件/etc/kolla/passwords.yml

kola-genpwd

3.5.3 编辑密码

修改内容如下:(不要设置纯数字密码,避免出错)
keystone_admin_password: secret

3.5.4 编辑文件/etc/kolla/globals.yml

kolla_install_type: “source”
openstack_release: “4.0.3”
kolla_internal_vip_address: “127.0.0.1”
docker_registry: ” 172.24.10.47:4000”
docker_namespace: “lokolla”
network_interface: “eth0” //172.24.10.47对应的网卡
neutron_external_interface: “eth1”
其中openstack_release的值可在/opt/registry/docker/registry/v2/repositories/lokolla/centos-source-openstack-base/_manifests/tags中查看

自定义要安装的组件
有注释的组件中值yes的表示默认要安装的组件,值为no的表示默认不安装的组件
如果想要启用某个默认不安装的组件,需要把no改为yes,而且要把注释去掉
这里写图片描述

3.6 安装OpenStack

3.6.1 检查环境是否可用

kolla-ansible prechecks

3.6.2 开始部署openstack

kolla-ansible deploy -i /home/all-in-one

3.6.3 生成admin-openrc.sh

kolla-ansible post-deploy

3.6.4 安装OpenStack client端

pip install python-openstackclient

3.7 定义并生成基础环境

3.7.1编辑/usr/share/kolla-ansible/init-runonce

EXT_NET_CIDR=’192.168.200.0/24’
EXT_NET_RANGE=’start=192.168.200.30,end=192.168.200.40’
EXT_NET_GATEWAY=’192.168.200.1’
我的eth1网卡ip是192.168.200.13,这里配置好,即可自动创建好可用的外部网络。

3.7.2 生成基础环境

source /etc/kolla/admin-openrc.sh
cd /usr/share/kolla-ansible
./init-runonce

4. 使用OpenStack

我的Dashboard的地址是:172.24.10.47/auth/login
目录/etc/kolla下存放相应组件的配置文件
文件/etc/kolla/admin-openrc.sh中存放了dashboard的用户名和密码
文件/etc/kolla/passwords.yml 中存放了openstack环境的各种密码
用kolla部署的openstack,可以登陆VNC

原创粉丝点击