一、准备工作
最小化安装CentOS 8.3,装完后,进行初始化
selinux,防火墙端口无法访问,主机名问题,都是安装的常见错误,一定要细心确认。
kolla的安装,要求目标机器是两块网卡:
ens33,设置的IP是:192.168.41.13,之后Horizon访问就是通过这个IP地址;
ens37,不分配IP,这个是让neutron的br-ex 绑定使用,虚拟机是通过这块网卡访问外网。
ens38 选择nat网络,主要用于安装时连接外网下载包等
hosts绑定(/etc/hosts)
192.168.41.13 kolla
除系统外盘,再添加一块硬盘,用于存在,创建卷。
要启动cinder存储服务,需先添加一块新的硬盘,然后创建pv、vg
pvcreate /dev/sdb vgcreate cinder-volumes /dev/sdb #vg名取名为
cinder-volumes,这里主要跟 kolla配置文件里vg名一致
只允许vm实例访问块存储卷,对LVM可能出现异常做设置
vi /etc/lvm/lvm.conf
修改 devices 下面的,有多少块硬盘就写多少块,如果不想使用系统盘,则不写a|sda
devices {
...
filter = [ "a|sda|", "a|sdb|", "r|.*|" ]
重启lvm服务
systemctl restart lvm2-lvmetad.service
配置国内pipy源
mkdir ~/.pip
cat << EOF > ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn
EOF
安装pip
yum -y install epel-release
yum -y install python-pip
如果pip install 出现问题可以试试命令
pip install setuptools==33.1.1
二、安装基础包
一定要先启用EPEL的repo源
yum -y install python-devel libffi-devel gcc openssl-devel git python-pip qemu-kvm qemu-img
安装docker
1)下载RPM包
2)安装Docker 1.12.6,创建安装1.12.6比较稳定
yum localinstall -y docker-engine-1.12.6-1.el7.centos.x86_64.rpm docker-engine-selinux-1.12.6-1.el7.centos.noarch.rpm
也可以参考官方文档安装:
https://docs.docker.com/engine/installation/linux/centos/
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce #或 yum install docker-ce-1.12.6
配置Docker共享挂载
mkdir /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/kolla.conf << ‘EOF‘
[Service]
MountFlags=shared
EOF
设置访问私有的Docker仓库
公共的:https://hub.docker.com/u/kolla/,但下载比较慢 编辑 vim
/usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.41.13:4000
重启服务
systemctl daemon-reload && systemctl enable docker && systemctl restart docker
下载kolla官方提供的镜像
wget http://pkg.tuandai888.com/packages/kolla/centos-source-registry-pike-5.0.1.tar.gz 原来官方的下载地址http://tarballs.openstack.org/kolla/images/centos-source-registry-pike.tar.gz已经转到到https://hub.docker.com/u/kolla/,4G左右
mkdir -p /data/registry
tar -zxvf centos-source-registry-pike-5.0.1.tar.gz -C /data/registry
这样就把kolla的docker镜像文件放到Regisitry服务器上。
Registry 服务器
默认docker的registry是使用5000端口,对于OpenStack来说,有端口冲突,所以改成4000
docker run -d -v /data/registry:/var/lib/registry -p 4000:5000 --restart=always --name registry registry
测试是否成功:
#curl -k localhost:4000/v2/_catalog
#curl -k localhost:4000/v2/lokolla/centos-source-fluentd/tags/list
{"name":"lokolla/centos-source-fluentd","tags":["5.0.1"]}
Ansible
Kolla项目的Mitaka版本要求ansible版本低于2.0,Newton版本以后的就只支持2.x以上的版本。
yum install -y ansible
三、安装kolla
升级pip:
pip install -U pip -i https://pypi.tuna.tsinghua.edu.cn/simple
安装docker模块:pip install docker
安装kolla-ansible
cd /home
git clone -b stable/pike https://github.com/openstack/kolla-ansible.git
cd kolla-ansible
pip install . -i https://pypi.tuna.tsinghua.edu.cn/simple
复制相关文件
cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/kolla/
cp /usr/share/kolla-ansible/ansible/inventory/* /home/
如果是在虚拟机里再启动虚拟机,那么需要把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
编辑 vim /etc/kolla/passwords.yml
keystone_admin_password: admin123
这是登录Dashboard,admin使用的密码,根据需要进行修改。
编辑 vim /etc/kolla/globals.yml 文件
kolla_internal_vip_address: “192.168.41.13” //外部访问地址,如果是非HA环境,是控制节点IP
docker_registry: “192.168.41.13:4000” //镜像库,用部署节点的镜像库
,这里与前面配docker服务启动脚本配置的IP一样,如果使用主机名,这里也要使用主机名 docker_namespace:
“lokolla” kolla_install_type: “source” openstack_release: “5.0.1”
network_interface: “ens33” //网络接口,默认就这一个接口,这里以ens33作为API网络
api_interface: “{{ network_interface }}” //用的是ens33
neutron_external_interface: “ens37” //ens37作为外部网络
enable_cinder: "yes" //启用cinder
enable_cinder_backend_iscsi: "yes"
enable_cinder_backend_lvm: "yes" //cinder后端用lvm
enable_haproxy: "no" //不启用haproxy
enable_heat: "no"
#默认创建外部网络的物理网络是physnet1
四、安装openstack
安装OpenStack
检查:kolla-ansible prechecks -i /home/all-in-one
部署:kolla-ansible deploy -i /home/all-in-one
验证部署
kolla-ansible post-deploy
这样就创建 /etc/kolla/admin-openrc.sh 文件
. /etc/kolla/admin-openrc.sh
安装OpenStack client端
pip install --ignore-installed python-openstackclient