ocata版本的kolla单节点部署

centos初始化

1, 关闭selinux

编辑/etc/selinux/config

SELINUX=disabled

重启机器,查看seliunux状态

sestatus

2, 关闭防火墙

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

3, Epel源

安装源

yum install epel-release

查看repo情况

yum repolist      

4. Hostname

cat /etc/hostname
kolla
cat   /etc/hosts
10.0.1.11   kolla   kolla
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

5. 时间同步

yum install ntp
systemctl enable ntpd.service
systemctl start ntpd.service
手工同步时间
ntpdate 0.centos.pool.ntp.org

6. 网络初始化

kolla的安装,要求目标机器是两块网卡,所以我虚拟机也是分配两块网卡,

enp0s8,vhost-only模式,设置的IP是:192.168.27.10,日后Horizon访问就是通过这个IP地址
enp0s9,NAT模式,ip其实是dhcp分配,这个其实是让neutron的br-ex 绑定使用,虚拟机是通过这块网卡访问外网。

基础包的安装

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

安装Docker

目前最新版本的Docker是1.13.1,Kolla目前支持的Docker是1.12.x,所以我们要指定Docker的版本来安装,并且一定要采用Docker官方的源,不能使用红帽的源,红帽的源的Docker是有bug。
设置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

安装Docker 1.12.5

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

设置docker

mkdir /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
[Service]
MountFlags=shared
EOF

重启相关服务

systemctl daemon-reload
systemctl enable docker
systemctl restart docker

访问私有的Docker仓库
编辑 /usr/lib/systemd/system/docker.service

#ExecStart=/usr/bin/dockerd
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.27.10:4000

重启服务

systemctl daemon-reload
systemctl restart docker

Ansible

Kolla项目的Mitaka版本要求ansible版本低于2.0,Newton版本以后的就只支持2.x以上的版本。

yum install ansible

Registry 服务器

默认docker的registry是使用5000端口,对于OpenStack来说,有端口冲突,所以改成4000

docker run -d -v /opt/registry:/var/lib/registry -p 4000:5000 \
--restart=always --name registry registry:2

下载kolla官方提供的镜像到镜像目录
这是kolla官方提供的镜像给CI使用,只保留最新版本和最新的stable版本。大家可以下载Ocata版本

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

kolla-ansible

下载kolla-ansible的代码

cd /home
git clone http://git.trystack.cn/openstack/kolla-ansible -b stable/ocata

安装kolla-ansible

cd kolla-ansible
pip install .

复制相关文件

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

如果是在虚拟机里装kolla,希望可以启动再启动虚拟机,那么你需要把virt_type=qemu,默认是kvm

mkdir -p /etc/kolla/config/nova
cat << EOF > /etc/kolla/config/nova/nova-compute.conf
[libvirt]
virt_type=qemu
cpu_mode = none
EOF

生成密码文件

kolla-genpwd

编辑 /etc/kolla/passwords.yml

keystone_admin_password:admin

这是登录Dashboard,admin使用的密码,你可以根据自己需要进行修改。

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

kolla_internal_vip_address: "10.0.1.253"
kolla_install_type: "source"
openstack_release: "auto"
docker_registry: "10.0.1.11:4000"
docker_namespace: "lokolla"
network_interface: "enp0s8"
neutron_external_interface: "enp0s9"

其中openstack_release这个参数是根据docker镜像的release版本来的,这个参数可以不配置,会自动选择

编辑all-in-one的host文件
选择要安装的必要服务,这里服务很多,选择必要就行了,参考模板

检查剧本

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

安装OpenStack

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

验证部署

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

安装OpenStack client端

pip install python-openstackclient

编辑 /usr/share/kolla-ansible/init-runonce
网络需要根据实际情况修改

EXT_NET_CIDR='10.0.4.0/24'
EXT_NET_RANGE='start=10.0.4.30,end=10.0.4.40'
EXT_NET_GATEWAY='10.0.4.1'

这里解析一下,10.0.4.0的网络,就是我上面enp0s9接的网络,这个网络是通过路由器访问互联网。这个地方需要好好理解。配置好这个,装完虚拟机就可以直接ping通。

运行

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

openstack server create \
--image cirros \
--flavor m1.tiny \
--key-name mykey \
--nic net-id=2ba93782-71e2-44d6-ad64-796c5853dcce \
demo1

这个时候,你可以登录Dashboard(vip的地址),给虚拟机分配一个floating ip,如果顺利,你应该就可以直接ping 通 floating ip的地址。

查看日志目录

/var/lib/docker/volumes/kolla_logs/_data/

虚拟机的xml

/run/libvirt/qemu/instance-00000001.xml
/run/libvirt/qemu/instance-00000001.pid
/var/lib/docker/volumes/nova_libvirt_qemu/_data/instance-00000001.xml

container_config_directory: "/var/lib/kolla/config_files"

备注:
多节点部署的时候,非kolla-ansible节点需要手动安装docker-py的包 命令: pip install docker-py
参考:http://www.chenshake.com/kolla-installation/

你可能感兴趣的:(ocata版本的kolla单节点部署)