f47fa7dcd5
1. Add kolla and kolla-ansible integrated patch 2. Add README to introduce how we can build skyline image with kolla and deploy skyline with kolla-ansible 3. Add kolla folder as irrelevant files into jobs Change-Id: I0cc7e9ddd62fc3e20564bf8a0d98d5c7b8f8abac
180 lines
5.0 KiB
Markdown
180 lines
5.0 KiB
Markdown
# Kolla Ansible Deployment
|
|
|
|
## Environments
|
|
|
|
> **Requirements:**\
|
|
> 2 network interfaces\
|
|
> 8GB main memory\
|
|
> 100GB disk space\
|
|
> ubuntu20.04 / centos8
|
|
|
|
- kolla : `https://github.com/openstack/kolla`
|
|
- kolla-ansible : `https://github.com/openstack/kolla-ansible`
|
|
- kolla skyline patch : `https://opendev.org/skyline/skyline-apiserver/src/branch/master/kolla/kolla-xxxxxxx.diff`
|
|
- kolla-ansible skyline patch : `https://opendev.org/skyline/skyline-apiserver/src/branch/master/kolla/kolla-ansible-xxxxxxx.diff`
|
|
|
|
## kolla build docker image
|
|
|
|
- If kolla is not installed in the deployment environment
|
|
|
|
```shell
|
|
cd /opt
|
|
git clone https://github.com/openstack/kolla-ansible
|
|
curl https://opendev.org/skyline/skyline-apiserver/src/branch/master/kolla/kolla-ansible-xxxxxxx.diff -o kolla-ansible.diff
|
|
cd /opt/kolla-ansible
|
|
git apply --check /opt/kolla-ansible.diff
|
|
git apply /opt/kolla-ansible.diff
|
|
sudo pip3 install /opt/kolla-ansible
|
|
```
|
|
|
|
- If kolla has been installed in the deployment environment
|
|
|
|
Get the kolla installation directory:
|
|
|
|
```shell
|
|
KOLLA_PACKAGE_PATH=$(python3 -c "import kolla;from pathlib import Path;print(Path(kolla.__file__).parents[1])")
|
|
KOLLA_DATA_FILES_PATH=$(python3 -c "import kolla;from pathlib import Path;print(Path(kolla.__file__).parents[4].joinpath('share/kolla'))")
|
|
```
|
|
|
|
Install kolla patch
|
|
|
|
```shell
|
|
curl https://opendev.org/skyline/skyline-apiserver/src/branch/master/kolla/kolla-xxxxxxx.diff -o /opt/kolla.diff
|
|
cd ${KOLLA_PACKAGE_PATH}
|
|
git apply --check --include='kolla/*' /opt/kolla.diff
|
|
git apply --include='kolla/*' /opt/kolla.diff
|
|
cd ${KOLLA_DATA_FILES_PATH}
|
|
git apply --check --include='docker/*' /opt/kolla.diff
|
|
git apply --include='docker/*' /opt/kolla.diff
|
|
```
|
|
|
|
### Build skyline image
|
|
|
|
> **Note : Only provide ubuntu-source-skyline of skyline image**
|
|
|
|
- `-b`: The distro type of the base image
|
|
- `-t`: The method of the OpenStack install
|
|
- `-n`: The Docker namespace name
|
|
- `--tag`: Docker tag
|
|
- `--registry`: The docker registry host
|
|
- `--push`: Push images after building
|
|
|
|
```shell
|
|
kolla-build -b ubuntu -t source -n kolla --tag master --registry 127.0.0.1:4000 --push skyline
|
|
```
|
|
|
|
## Kolla Ansible Install
|
|
|
|
### kolla-ansible install
|
|
|
|
- If kolla-ansible is not installed in the deployment environment
|
|
|
|
```shell
|
|
cd /opt
|
|
git clone https://github.com/openstack/kolla-ansible
|
|
curl https://opendev.org/skyline/skyline-apiserver/src/branch/master/kolla/kolla-ansible-xxxxxxx.diff -o kolla-ansible.diff
|
|
cd /opt/kolla-ansible
|
|
git apply --check /opt/kolla-ansible.diff
|
|
git apply /opt/kolla-ansible.diff
|
|
sudo pip3 install /opt/kolla-ansible
|
|
```
|
|
|
|
- If kolla-ansible has been installed in the deployment environment
|
|
|
|
Get the kolla-ansible installation directory:
|
|
|
|
```shell
|
|
KOLLA_ANSIBLE_DATA_FILES_PATH=$(python3 -c "import kolla_ansible;from pathlib import Path;print(Path(kolla_ansible.__file__).parents[4].joinpath('share/kolla-ansible'))")
|
|
```
|
|
|
|
Install kolla-ansible patch
|
|
|
|
```shell
|
|
curl https://opendev.org/skyline/skyline-apiserver/src/branch/master/kolla/kolla-ansible-xxxxxxx.diff -o /opt/kolla-ansible.diff
|
|
cd ${KOLLA_ANSIBLE_DATA_FILES_PATH}
|
|
git apply --check --include='ansible/*' /opt/kolla-ansible.diff
|
|
git apply --include='ansible/*' /opt/kolla-ansible.diff
|
|
```
|
|
|
|
### Configuration
|
|
|
|
- If the configuration file does not exist(globals.yml/passwords.yml/all-in-one/multinode), copy the
|
|
configuration files and generate passwords
|
|
|
|
```shell
|
|
cp -r kolla-ansible/etc/kolla/* /etc/kolla
|
|
cp kolla-ansible/ansible/inventory/* /etc/kolla
|
|
kolla-genpwd
|
|
```
|
|
|
|
- If the configuration file exists(globals.yml/passwords.yml/all-in-one/multinode), modify it
|
|
manually
|
|
- Edit `/etc/kolla/all-in-one` and `/etc/kolla/multinode`, add the following options
|
|
|
|
```bash
|
|
[skyline:children]
|
|
control
|
|
```
|
|
|
|
- Edit `/etc/kolla/passwords.yml` and add the following options, then generate passwords manually
|
|
or by running `kolla-genpwd`
|
|
|
|
```shell
|
|
skyline_database_password:
|
|
skyline_keystone_password:
|
|
```
|
|
|
|
Edit `/etc/ansible/ansible.cfg` file
|
|
|
|
```bash
|
|
[defaults]
|
|
host_key_checking=False
|
|
pipelining=True
|
|
forks=100
|
|
```
|
|
|
|
Edit `/etc/kolla/globals.yml` file, for example:
|
|
|
|
```bash
|
|
network_interface: "eth0"
|
|
neutron_external_interface: "eth1"
|
|
kolla_internal_vip_address: "192.168.10.250"
|
|
enable_skyline: "yes"
|
|
docker_registry: "127.0.0.1:4000"
|
|
docker_namespace: "kolla"
|
|
kolla_base_distro: "ubuntu"
|
|
kolla_install_type: "source"
|
|
```
|
|
|
|
### Skyline Deployment
|
|
|
|
> **Note : Openstack basic modules have been installed**
|
|
|
|
```shell
|
|
kolla-ansible -i ./all-in-one bootstrap-servers -t skyline
|
|
kolla-ansible -i ./all-in-one prechecks -t skyline
|
|
kolla-ansible -i ./all-in-one deploy -t skyline
|
|
```
|
|
|
|
## FAQ
|
|
|
|
### Local Repository Error "connect: Connection refused" occurred during skyline image build and skyline deployment
|
|
|
|
Edit `/etc/docker/daemon.json` file and Delete the following options
|
|
|
|
```shell
|
|
bridge: "none"
|
|
```
|
|
|
|
Restart docker service
|
|
|
|
```shell
|
|
sudo service docker restart
|
|
```
|
|
|
|
Run local registry
|
|
|
|
```shell
|
|
docker run -d --name registry --restart=always -p 4000:5000 -v registry:/var/lib/registry registry:2
|
|
```
|