tacker/vagrant/devstack
Yasufumi Ogawa 6e72a2d376 Add jammy support for tacker installer
As one of the community-wide goals, devstack has shifted to Ubuntu
Jammy from Antelope cycle [1]. So, add playbooks for Jammy to
installer.

Although Focal support is still remained so that you can setup your
environment on older version, but will be removed later.

There are some additional updates.

* Add bento as supported boxes which are well maintained more.

* Use experimental Vagrant Disk to expand disk space on logical volume
  because for Ubuntu images of bento.

* Change to use ssh key in ed25519 instead of rsa because it was
  deprecated in Jammy as default.

[1] https://lists.openstack.org/pipermail/openstack-discuss/2022-October/030845.html

Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
Change-Id: I65b209a8ff2bd46adf2a4ee507ef7eee099d1b13
2023-02-16 21:25:55 +00:00
..
group_vars Update config in tacker installer 2022-07-07 01:19:48 +00:00
helper Introduce vagrant for devstack 2022-03-10 19:30:49 +09:00
lib Add jammy support for tacker installer 2023-02-16 21:25:55 +00:00
roles Add jammy support for tacker installer 2023-02-16 21:25:55 +00:00
samples Add jammy support for tacker installer 2023-02-16 21:25:55 +00:00
.gitignore Introduce vagrant for devstack 2022-03-10 19:30:49 +09:00
ansible.cfg Introduce vagrant for devstack 2022-03-10 19:30:49 +09:00
hosts Add jammy support for tacker installer 2023-02-16 21:25:55 +00:00
README.md Add jammy support for tacker installer 2023-02-16 21:25:55 +00:00
site.yaml Add jammy support for tacker installer 2023-02-16 21:25:55 +00:00
Vagrantfile Add jammy support for tacker installer 2023-02-16 21:25:55 +00:00

Devstack Installer for Tacker

What is this

Deployment tool for devstack for testing multi-VM OpenStack environment, consists of vagrant and ansible.

It only supports Ubuntu on VirtualBox currently.

How to use

Requirements

You need to install required software before running this tool. Please follow instructions on official sites for installation.

Please also notice the version of vagrant supporting experimental feature Vagrant Disks for expanding the size of volume if you use Ubuntu box image. For other boxes than Ubuntu, plugin vagrant-disksize is required instead as below. It is because the default size is not enough for deploying OpenStack environment.

$ vagrant plugin install vagrant-disksize

Here is a list of current supported boxes in this tool.

  • bento/ubuntu-22.04
  • bento/ubuntu-20.04
  • ubuntu/jammy64
  • ubuntu/focal64
  • bento/centos-stream-8
  • centos/stream8

Configure and Fire Up VMs

Before launching VMs with vagrant, configure machines.yml, which defines parameters of each VM you deploy. It should be placed at project root, or failed to run vagrant up. You can use template files in samples directory.

$ cp samples/machines.yml .
$ YOUR_FAVORITE_EDITOR machines.yml

You should take care about private_ips which is used in hosts for ansible-playbook as explained later.

You should confirm you have a SSH key before you run the command. This tool expects the type of your key is not rsa but ed25519 because rsa was deprecated as default in Ubuntu 22.04. Update key path ssh_pub_key in machines.yml without your key is ~/.ssh/id_ed25519.pub.

Run vagrant up after configurations are done. It launches VMs and create a user stack on them.

$ vagrant up

If vagrant up is completed successfully, you are ready to login to VMs as stack user with your SSH public key.

Setup Devstack

This tool provides ansible playbooks for setting up devstack. You should update entries of IP addresses in hosts as you defined private_ips in machines.yml.

There are some parameters in group_vars/all.yml such as password on devstack or optional configurations. You don't need to update it usually.

$ ansible-playbook -i hosts site.yaml

After finished ansible's tasks, you can login to launched VMs with hostname you defined in machines.yml. So, let's login to controller node and OpenStack. You will find that two examples of local.conf are prepared in $HOME/devstack for your environment.

  • local.conf.example
  • local.conf.kubernetes
$ ssh stack@192.168.56.11
$ cd devstack
$ cp local.conf.kubernetes local.conf
$ ./stack.sh

See instruction how to configure local.conf described in DevStack Quick Start.