# 硬件环境准备
1. CPU / 内存 / 磁盘
- 最小配置为:4C / 8G / 50G
- 建议使用 16G 以上内存,如果开启cinder的LVM后端,需要在加一块磁盘。
2. 网络配置最少需要2个网口
- 一个是管理网
- 一个虚拟机业务网
3. 操作系统 CentOS 7 以上系统,本文档是使用 CentOS 来做 demo。
4. 操作系统需要能够访问外部网络
5. 关闭 selinux 和 firewalld
# 安装前准备
1. 修改 hosts 文件,把 hostname 对应的 ip 地址,添加到这个文件中。
```
[root@openstack-allinone ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.211.55.9 openstack-allinone
[root@openstack-allinone ~]#
```
2. 安装 epel-release
```
sudo yum install -y epel-release
```
3. 安装 python 依赖
```
sudo yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python
```
4. 安装虚拟环境(可选)
- 目前 kolla 以及 ansible 支持安装在虚拟环境中
```
sudo yum install -y python-virtualenv
```
- 如果直接安装在裸机中,可以不安装虚拟环境。本例没有使用虚拟环境
5. 安装 ansible(2.5+版本)
- 目前 kolla 已经不再支持 2.5 以下的 ansible 的版本
```
easy_install pip //安装pip
pip install -U pip //确保使用最新的pip
pip install ansible //安装ansible
```
- 国内 pip 安装速度较慢的话,可以使用国内的 pip 源
```
pip install ansible -i https://pypi.tuna.tsinghua.edu.cn/simple
```
- 检查 ansible 版本
```
[root@openstack-allinone ~]# ansible --version
ansible 2.8.2
config file = None
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, Jun 20 2019, 20:27:34) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]
[root@openstack-allinone ~]#
```
# 安装 kolla-ansible
1. 本次安装最新的发布版本 stein 版本,所以我们使用 stein 版本的 kolla-ansible
2. 如果操作系统没有安装 git 需要首先安装 git
```
yum install -y git
```
3. 之后克隆 kolla-ansible 的代码
```
git clone https://github.com/openstack/kolla-ansible.git -b stable/stein
```
4. 该步骤如果克隆较慢,可以自己下载压缩包,或者配置 git 代理
```
[root@openstack-allinone kolla-ansible]# git branch //检查分支
* stable/stein
[root@openstack-allinone kolla-ansible]# pwd
/root/kolla-ansible
[root@openstack-allinone kolla-ansible]#
```
4. 安装 kolla-ansible
```
cd ~/kolla-ansible
pip install . -i https://pypi.tuna.tsinghua.edu.cn/simple
```
5. 创建配置文件目录
```
sudo mkdir -p /etc/kolla
sudo chown $USER:$USER /etc/kolla
```
6. 拷贝 globals.yml 和 passwords.yml 文件到 /etc/kolla 目录下
```
cp -r /usr/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
```
7. 拷贝 allinone 和 mutinode 文件到当前家目录下
```
cp /usr/share/kolla-ansible/ansible/inventory/* ~/
```
# 配置 Inventory 和 globals.yml 文件
1. 在allinone的安装过程中不需要修改Inventory文件
2. 修改globals.yml文件
```
vi /etc/kolla/globals.yml
修改如下选项
kolla_install_type: "source"
openstack_release: "stein"
kolla_internal_vip_address: "10.211.55.100" //这个ip需要是管理网同一个网段的
network_interface: "eth0"
neutron_external_interface: "eth1"
enable_cinder: "yes"
enable_cinder_backend_lvm: "yes"
......其他的默认即可
```
# 配置 cinder 的 backend
1. cinder 默认使用的是 cinder-volumes 这个 vg,这个 vg 需要手动创建
```
[root@openstack-allinone ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 128G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 127.5G 0 part
├─VolGroup-lv_root 253:0 0 50G 0 lvm /
├─VolGroup-lv_swap 253:1 0 2G 0 lvm [SWAP]
└─VolGroup-lv_home 253:2 0 75.5G 0 lvm /home
sdb 8:16 0 100G 0 disk
sr0 11:0 1 146.4M 0 rom
sr1 11:1 1 603M 0 rom
```
2. 使用 sdb 创建 pv
```
[root@openstack-allinone ~]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created
[root@openstack-allinone ~]#
```
3. 创建 vg
```
[root@openstack-allinone ~]# vgcreate cinder-volumes /dev/sdb
Volume group "cinder-volumes" successfully created
[root@openstack-allinone ~]#
```
# 部署 openstack
1. 执行 bootstrap,会安装 docker 一类所需要的工具
```
kolla-ansible bootstrap-servers //默认使用allinone文件
```
2. 确认cpu是否支持硬件虚拟化
```
grep -E 'svm|vmx' /proc/cpuinfo
#如果有回显,则下面的操作不需要,如果没有回显,说明cpu不支持硬件虚拟化,需要修改virt_type
mkdir -p /etc/kolla/config/nova
cat << EOF > /etc/kolla/config/nova/nova-compute.conf
[libvirt]
virt_type=qemu
cpu_mode = none
EOF
```
3. docker 是从 docker hub 上面 pull openstack 镜像,国内的环境有点慢,所以这里配置了 docker 加速,当然也可以不配置这个步骤
```
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://自己的docker加速地址.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
```
4. 生成 kolla 密码
```
kolla-genpwd
```
5. 执行 precheck
```
kolla-ansible prechecks
```
6. 执行 pull(可以不执行,deploy 的时候会自动 pull)
```
kolla-ansible pull
```
7. 执行deploy
```
kolla-ansible deploy
```
# 使用 openstack
1. 安装openstack client
```
pip install python-openstackclient -i https://pypi.tuna.tsinghua.edu.cn/simple
```
2. 生成admin-rc文件
```
kolla-ansible post-deploy
默认是生成的文件名是: /etc/kolla/admin-openrc.sh
```
3. 测试openstack环境
```
source /etc/kolla/admin-openrc.sh
/usr/share/kolla-ansible/init-runonce
```
暂无评论