Ubuntu 18.04 部署 OpenStack (all-in-one方式)
参考链接:
Quick Start
kolla部署all-in-one
建议直接切换到root用户:
1、sudo vim /etc/ssh/sshd_config,添加配置参数:PermitRootLogin yes
2、给root用户设置密码:sudo passwd root
3、sudo systemctl restart ssh
1、安装环境准备
硬件名称 | 最低要求 |
---|---|
网卡 | 2块 |
内存 | 8GB |
硬盘 | 40GB |
直接上图:
注意:安装Ubuntu系统时先不要添加网络适配器2和硬盘2。
安装好虚拟机系统之后关闭虚拟机,点击上图的添加按钮,添加网络适配器2和硬盘2。启动虚拟机,配置网卡接口IP:
rm -r /etc/netplan/*
vi /etc/netplan/controller.yaml
network:
version: 2
renderer: networkd
ethernets:
$NETWORK_INTERFACE1: # 改成自己的网卡1,一般是ens33,可以用命令 ip a 查看
addresses: [$LOCAL_ADDRESS/24] # 网卡1的IP地址
gateway4: $LOCAL_GATEWAY # 网卡1的网关
nameservers:
addresses: [114.114.114.114, 8.8.8.8]
$NETWORK_INTERFACE2: # 网卡2,我这里是ens38
dhcp4: false
netplan apply
能ping通百度就可以了。然后挂载新硬盘:
# 挂载卷
sudo apt install lvm2
pvcreate /dev/sdb
vgcreate cinder-volumes /dev/sdb
2、安装依赖
- 更新软件包索引:
sudo apt update
- 安装Python构建依赖项:
sudo apt install python3-dev libffi-dev gcc libssl-dev vim
- 安装pip:
sudo apt install python3-pip
sudo pip3 install -U pip
- 安装Ansible
# 两种安装方式都要
sudo apt install ansible
sudo pip3 install -U 'ansible<2.10'
3、安装Kolla-ansible进行部署或评估
- 配置主机名
hostnamectl set-hostname control01
- 安装kolla-ansible
sudo pip3 install kolla-ansible --ignore-installed PyYAML
- 创建/etc/kolla目录
sudo mkdir -p /etc/kolla
sudo chown $USER:$USER /etc/kolla
- 复制globals.yml并passwords.yml到/etc/kolla目录
cp -r /usr/local/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
- 将文件复制all-in-one并multinode清点到当前目录
cp /usr/local/share/kolla-ansible/ansible/inventory/* .
- 修改ansible配置文件
$ vim /etc/ansible/ansible.cfg
[defaults]
host_key_checking=False
pipelining=True
forks=100
- 修改all-in-one文件
sed -i 's#localhost ansible_connection=local#control01#g' all-in-one
- 配置主机名解析
$ vim /etc/hosts
192.168.50.171 control01 # 改为自己的IP
- 配置ssh免密
ssh-keygen
ssh-copy-id root@control01
- 检查inventory配置是否正确
ansible -i all-in-one all -m ping
- 生成openstack组件用到的密码
kolla-genpwd
- 修改keystone_admin_password,方便后续使用horizon登录,修改后密码为admin
sed -i 's#keystone_admin_password:.*#keystone_admin_password: admin#g' /etc/kolla/passwords.yml
- 修改全局配置文件globals.yml
$ cp /etc/kolla/globals.yml{,.bak}
$ vim /etc/kolla/globals.yml
#####################################
kolla_base_distro: "ubuntu"
kolla_install_type: "source"
openstack_release: "victoria"
kolla_internal_vip_address: "192.168.50.171" # 改为自己的
network_interface: "ens33" # 改为自己的
neutron_external_interface: "ens38" # 改为自己的
enable_haproxy: "no"
enable_cinder: "yes"
enable_cinder_backend_lvm: "yes"
nova_compute_virt_type:"qemu"
#####################################
- 修改docker官方yum源为阿里云yum源,另外配置docker镜像加速,指定使用阿里云镜像加速。
$ vim /usr/local/share/kolla-ansible/ansible/roles/baremetal/defaults/main.yaml
docker_yum_url:"https://mirrors.aliyun.com/docker-ce/linux/{{ ansible_distribution | lower }}"
docker_custom_config: {"registry-mirrors": ["https://uyah70su.mirror.aliyuncs.com"]}
4、 部署openstack组件
#预配置,安装docker、docker sdk、关闭防火墙、配置时间同步等
kolla-ansible -i ./all-in-one bootstrap-servers
#部署前环境检查
kolla-ansible -i ./all-in-one prechecks
#执行实际部署,拉取镜像,运行对应组件容器
kolla-ansible -i ./all-in-one deploy
5、部署成功
通过horizon访问,网址栏输入192.168.50.171/admin,登陆时用户名为admin,密码为admin。
6、遇到的一些错误
错误:ERROR: Cannot uninstall 'PyYAML'.
解决:pip3 install --ignore-installed PyYAML
错误:SSH :connect to host localhost port 22: Connection refused
解决:1、sudo apt-get install openssh-server openssh-client 2、重启 3、service ssh start
错误:lease install both in the same (virtual) environment.
解决:sudo pip3 install -U 'ansible<2.10'
错误:ImportError: No module named docker
解决:将/usr/bin/python指向python3
1、sudo rm /usr/bin/python
2、ln -s /usr/bin/python3 /user/bin/python
错误:HTTPError: 404 Client Error: Not Found for url: http+docker://localhost/v1.41/images/create?tag=ussuri&fromImage=registry.cn-shenzhen.aliyuncs.com
解决:vim /usr/local/share/kolla-ansible/ansible/roles/baremetal/defaults/main.yaml
docker_yum_url:"https://mirrors.aliyun.com/docker-ce/linux/{{ ansible_distribution | lower }}"
docker_custom_config: {"registry-mirrors": ["https://uyah70su.mirror.aliyuncs.com"]}
错误:nova-cell : Waiting for nova-compute services to register themselves
解决:openstack_release改为"victoria"