centos初始化
1, 關(guān)閉selinux
編輯/etc/selinux/config
SELINUX=disabled
重啟機(jī)器蚜厉,查看seliunux狀態(tài)
sestatus
2, 關(guān)閉防火墻
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. 時(shí)間同步
yum install ntp
systemctl enable ntpd.service
systemctl start ntpd.service
手工同步時(shí)間
ntpdate 0.centos.pool.ntp.org
6. 網(wǎng)絡(luò)初始化
kolla的安裝硼身,要求目標(biāo)機(jī)器是兩塊網(wǎng)卡,所以我虛擬機(jī)也是分配兩塊網(wǎng)卡,
enp0s8祷肯,vhost-only模式嘹裂,設(shè)置的IP是:192.168.27.10,日后Horizon訪問就是通過這個(gè)IP地址
enp0s9濒持,NAT模式键耕,ip其實(shí)是dhcp分配,這個(gè)其實(shí)是讓neutron的br-ex 綁定使用柑营,虛擬機(jī)是通過這塊網(wǎng)卡訪問外網(wǎng)屈雄。
基礎(chǔ)包的安裝
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惋嚎。
設(shè)置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
設(shè)置docker
mkdir /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
[Service]
MountFlags=shared
EOF
重啟相關(guān)服務(wù)
systemctl daemon-reload
systemctl enable docker
systemctl restart docker
訪問私有的Docker倉(cāng)庫(kù)
編輯 /usr/lib/systemd/system/docker.service
#ExecStart=/usr/bin/dockerd
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.27.10:4000
重啟服務(wù)
systemctl daemon-reload
systemctl restart docker
Ansible
Kolla項(xiàng)目的Mitaka版本要求ansible版本低于2.0,Newton版本以后的就只支持2.x以上的版本纺阔。
yum install ansible
Registry 服務(wù)器
默認(rèn)docker的registry是使用5000端口瘸彤,對(duì)于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 .
復(fù)制相關(guān)文件
cp -r etc/kolla /etc/kolla/
cp ansible/inventory/* /home/
如果是在虛擬機(jī)里裝kolla,希望可以啟動(dòng)再啟動(dòng)虛擬機(jī)结榄,那么你需要把virt_type=qemu中贝,默認(rèn)是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使用的密碼臼朗,你可以根據(jù)自己需要進(jìn)行修改邻寿。
編輯 /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這個(gè)參數(shù)是根據(jù)docker鏡像的release版本來的,這個(gè)參數(shù)可以不配置视哑,會(huì)自動(dòng)選擇
編輯all-in-one的host文件
選擇要安裝的必要服務(wù)绣否,這里服務(wù)很多,選擇必要就行了挡毅,參考模板
檢查劇本
kolla-ansible prechecks -i /home/all-in-one
安裝OpenStack
kolla-ansible deploy -i /home/all-in-one
驗(yàn)證部署
kolla-ansible post-deploy -i /home/all-in-one
安裝OpenStack client端
pip install python-openstackclient
編輯 /usr/share/kolla-ansible/init-runonce
網(wǎng)絡(luò)需要根據(jù)實(shí)際情況修改
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的網(wǎng)絡(luò),就是我上面enp0s9接的網(wǎng)絡(luò)跪呈,這個(gè)網(wǎng)絡(luò)是通過路由器訪問互聯(lián)網(wǎng)段磨。這個(gè)地方需要好好理解。配置好這個(gè)耗绿,裝完虛擬機(jī)就可以直接ping通苹支。
運(yùn)行
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
這個(gè)時(shí)候,你可以登錄Dashboard(vip的地址)误阻,給虛擬機(jī)分配一個(gè)floating ip债蜜,如果順利,你應(yīng)該就可以直接ping 通 floating ip的地址究反。
查看日志目錄
/var/lib/docker/volumes/kolla_logs/_data/
虛擬機(jī)的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"
備注:
多節(jié)點(diǎn)部署的時(shí)候策幼,非kolla-ansible節(jié)點(diǎn)需要手動(dòng)安裝docker-py的包 命令: pip install docker-py
參考:http://www.chenshake.com/kolla-installation/