使用Kolla-ansible在Ubuntu18.04上安装Openstack
当前只完成了all-in-one的部分,multinode遇到了坑,晚些再找找解决办法
[TOC]
准备工作
两台机器 Ubuntu 18.04 Server版
2 network interfaces
8GB main memory
40GB disk space安装pip
1
2
3apt-get update
apt-get install python-pip
pip install -U pip
配置Ubuntu
apt换源,这里换成了清华源(注意不同的Ubuntu这个url是不同的),而且如果安装的时候写明了源的话,进来应该就不用自己改了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16cp /etc/apt/sources.list /etc/apt/sources.list.bkp
vim /etc/apt/sources.list
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiversepip源
1
2
3~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simplepython-pip 问题
可能会遇到说
cannot import main
这样的错误,网上都让你直接修改pip的源码,但是我改了好几个都GG了,发现重装Pip比较简单
1
2
sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall
按以上方式重装,注意python版本
允许root用户登录
1
2
3
4
5
6
7
8sudo vi /etc/ssh/sshd_config
修改
PermitRootLogin yes
#PermitEmptyPasswords yes 无密码登录
重启SSH服务
service sshd restart # 或者 /etc/initd.d/sshd restart安装一些基础依赖
1
apt-get install python-dev libffi-dev gcc libssl-dev python-selinux python-setuptools
- 安装ansible
1
apt-get install ansible
- 升级Ansible
1
pip install -U ansible
【可选】添加到 /etc/ansible/ansible.cfg:
1
2
3
4[defaults]
host_key_checking=False
pipelining=True
forks=100安装Docker和配置Docker hub的国内源
安装:https://docs.docker.com/install/linux/docker-ce/ubuntu/
配置国内源推荐阿里云,点进去控制台找
容器
,里边有配置加速器的选项,就可以了,我用了中科大和daocloud的都不成,估计晚些会自己配一个docker registry,不然项目大规模部署的话,拉取确实太慢了
网络配置
虚拟机选择3个网卡
- 一个是NAT,负责连外网;
- 一个是主机模式,给主机上的虚拟网卡配置成了
10.0.0.X/24
- 一个随便设置了,用来给neutron的那个配置用
Ubuntu 显示网卡
1
ifconfig -a
不加-a的话,如果有未启用的网卡是不显示的,一般最好加上-a
配置netplan
1
2
3
4
5
6
7
8
9
10
11
12
13
14vim /etc/netplan/50-cloud-init.yaml
network:
ethernets:
ens33:
dhcp4: true
ens38:
addresses: [10.0.0.3/24]
routes:
- to: 10.0.0.0/24
via: 10.0.0.1
dhcp4: no
version: 2注意不要配置gateway4,而是使用routes进行路由,不然会导致路由的异常,可查看
route -n
查看路由表我现在的路由表是
1
2
3
4
5
6
7Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.178.2 0.0.0.0 UG 100 0 0 ens33
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 ens38
10.0.0.0 10.0.0.1 255.255.255.0 UG 0 0 0 ens38
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.178.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
192.168.178.2 0.0.0.0 255.255.255.255 UH 100 0 0 ens33192.168.178.2是通外网的,设为默认路由
启用
1
netplan apply
使用
ifconfig
测试正确性编辑
/etc/hosts
文件,添加解析
安装Kolla-ansible
【选】安装kolla-ansible的部署版
- 安装kolla-ansible
1
pip install kolla-ansible
拷贝文件到工作目录 Copy globals.yml and passwords.yml to /etc/kolla directory
1
cp -r /usr/local/share/kolla-ansible/etc_examples/kolla /etc/
拷贝Inventory到当前目录
1
cp /usr/local/share/kolla-ansible/ansible/inventory/* .
【荐】安装kolla-ansible开发模式
- clone 两个仓库
1
2git clone https://github.com/openstack/kolla
git clone https://github.com/openstack/kolla-ansible
- 安装requirements.txt
1
2pip install -r kolla/requirements.txt
pip install -r kolla-ansible/requirements.txt
- 复制配置文件到 /etc/kolla
1
2mkdir -p /etc/kolla
cp -r kolla-ansible/etc/kolla/* /etc/kolla
Copy the inventory files to the current directory.
1
cp kolla-ansible/ansible/inventory/* .
如果要使用Kolla-ansible命令的话,就要进
kolla-ansible/tools
目录下使用kolla-ansible
文件执行
杂项
新建用户
1
2
3useradd csdn
usermod -s /bin/bash csdn
usermod -d /home/csdn csdn添加到sudoers
1
2
3
4
5
6chmod u+w /etc/sudoers
vim /etc/sudoers
csdn ALL=(ALL) ALL
chmod u-w /etc/sudoers用户可能对自己的目录没有权限
1
2chown -R csdn /home/csdn
chgrp -R csdn /home/csdn