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/