Improve Vagrantfile, add development configuration

Adds commands to install dependencies, and setup a virtualenv with kayobe
installed. Configuration is provided in dev/ for a single controller with
a single network.
This commit is contained in:
Mark Goddard 2017-08-07 22:13:21 +00:00
parent f611fa16b2
commit dc2ea4c1e5
4 changed files with 87 additions and 5 deletions

29
Vagrantfile vendored
View File

@ -26,7 +26,7 @@ Vagrant.configure("2") do |config|
# Create a private network, which allows host-only access to the machine # Create a private network, which allows host-only access to the machine
# using a specific IP. # using a specific IP.
# config.vm.network "private_network", ip: "192.168.33.10" config.vm.network "private_network", ip: "192.168.33.3"
# Create a public network, which generally matched to bridged network. # Create a public network, which generally matched to bridged network.
# Bridged networks make the machine appear as another physical device on # Bridged networks make the machine appear as another physical device on
@ -64,8 +64,27 @@ Vagrant.configure("2") do |config|
# Enable provisioning with a shell script. Additional provisioners such as # Enable provisioning with a shell script. Additional provisioners such as
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
# documentation for more information about their specific syntax and use. # documentation for more information about their specific syntax and use.
# config.vm.provision "shell", inline: <<-SHELL #
# apt-get update # Set privileged: false to run as vagrant user.
# apt-get install -y apache2 config.vm.provision "shell", privileged: false, inline: <<-SHELL
# SHELL sudo ifup eth1
sudo yum -y install gcc git vim python-virtualenv
cat > /vagrant/kayobe-env << EOF
export KAYOBE_CONFIG_PATH=/vagrant/etc/kayobe
export KOLLA_CONFIG_PATH=/vagrant/etc/kolla
EOF
source /vagrant/kayobe-env
cp /vagrant/dev/dev-vagrant.yml /vagrant/etc/kayobe/
cp /vagrant/dev/dev-hosts /vagrant/etc/kayobe/inventory
cp /vagrant/dev/dev-vagrant-network-allocation.yml /vagrant/etc/kayobe/network-allocation.yml
virtualenv ~/kayobe-venv
source ~/kayobe-venv/bin/activate
pip install -U pip
pip install /vagrant
deactivate
SHELL
end end

2
dev/dev-hosts Normal file
View File

@ -0,0 +1,2 @@
[controllers]
controller0 ansible_host=192.168.33.3

View File

@ -0,0 +1,2 @@
aio_ips:
controller0: 192.168.33.3

59
dev/dev-vagrant.yml Normal file
View File

@ -0,0 +1,59 @@
---
# Development configuration for Kayobe on Vagrant.
# Configures a single controller with a single network (aio).
# No need to provide a different user for bootstrapping.
controller_bootstrap_user: vagrant
# Don't create any LVM groups.
controller_lvm_groups: []
# Use the overlay docker storage driver as it doesn't require LVM.
docker_storage_driver: overlay
# Use the vagrant user to access the controller via SSH.
kayobe_ansible_user: vagrant
# Use the 4.0.2 release of kolla and kolla-ansible.
kolla_openstack_release: 4.0.2
# Kolla container image extensions.
kolla_build_blocks:
ironic_base_footer: |
# Install a more recent version of ironic-lib with a fix for
# https://bugs.launchpad.net/ironic/+bug/1673731.
RUN pip install -U --no-deps ironic-lib==2.7.0
# Kolla container image customisations.
kolla_build_customizations:
ironic_conductor_packages_append:
# e2fsprogs is required to create ext ephemeral filesystems.
- 'e2fsprogs'
# xfsprogs is required to create XFS ephemeral filesystems.
- 'xfsprogs'
# Disable swift.
kolla_enable_swift: False
# Map all networks to the all-in-one network.
oob_oc_net_name: aio
provision_oc_net_name: aio
oob_wl_net_name: aio
provision_wl_net_name: aio
internal_net_name: aio
external_net_name: aio
storage_net_name: aio
storage_mgmt_net_name: aio
inspection_net_name: aio
# All-in-one network.
aio_cidr: 192.168.33.0/24
aio_gateway: 192.168.33.1
aio_allocation_pool_start: 192.168.33.3
aio_allocation_pool_end: 192.168.33.254
aio_vip_address: 192.168.33.2
# Controller interface on all-in-one network.
aio_interface: breth1
aio_bridge_ports:
- eth1