Testing TripleO on own OpenStack deployment
For some use cases, it's quite useful to test TripleO deployments on a OpenStack powered cloud, rather than using a baremetal system. The following article will show you, how to do it:
We're going to use tripleo-quickstart . This also assumes, you have downloaded your OpenStack openrc.sh handy and stored e.g in your home directory. I've also created another flavor, named tripleo-bm with 12 Gigs memory and 6 vcpus. In doubt, just give it more RAM.
git clone https://github.com/openstack/tripleo-quickstart git clone https://github.com/openstack/tripleo-quickstart-extras cp tripleo-quickstart-extras/config/environments/rdcloud.yml tripleo-quickstart/config/environments/mycloud.yml
This copies the configuration for use of RDO-Cloud over, to be ready for own and required customization. You'll need to modify the file tripleo-quickstart/config/environments/mycloud.yml
os_username: "{{ lookup('env','OS_USERNAME') }}" os_password: "{{ lookup('env','OS_PASSWORD') }}" os_tenant_name: "{{ lookup('env','OS_TENANT_NAME') }}" os_auth_url: "{{ lookup('env','OS_AUTH_URL') }}" os_region_name: "{{ lookup('env', 'OS_REGION_NAME') }}" cloud_name: rdocloud latest_guest_image: newton: CentOS-7-x86_64-GenericCloud-1711 ocata: CentOS-7-x86_64-GenericCloud-1711 master: CentOS-x86_64-GenericCloud-1708 bmc_flavor: m1.small baremetal_flavor: m1.large undercloud_flavor: tripleo-bm provision_net_cidr: 192.168.24.0/24 custom_nameserver: - 192.168.36.9 - 192.168.36.1 undercloud_undercloud_nameservers: "{{ custom_nameserver }}" external_net: 'ext-net' overcloud_dns_servers: "{{ custom_nameserver }}" ntp_server: '192.168.36.1' boot_from_volume: true overcloud_image_url: http://images.rdoproject.org/{{ release }}/rdo_trunk/{{ dlrn_hash|default(dlrn_hash_tag) }}/overcloud-full.tar ipa_image_url: http://images.rdoproject.org/{{ release }}/rdo_trunk/{{ dlrn_hash|default(dlrn_hash_tag) }}/ironic-python-agent.tar docker_registry_host: trunk.registry.rdoproject.org docker_registry_namespace: "{{ release }}" mtu: 1350 mtu_interface: - eth0 - eth1 - "{% if network_isolation|default(true)|bool %}eth2{% endif %}" undercloud_local_mtu: "{{ mtu }}" overcloud_neutron_global_physnet_mtu: "{{ mtu }}" run_tripleo_validations: False # containerized_overcloud: False
Besides minor things like DNS or ntp, one probably needs to adjust are flavors: They need to exist in your setup. When in doubt, insert a larger flavor. Also one needs to configure external_net. It should name the external network in your OpenStack environment, like returned by openstack network list --external. The guest images need to exist, at least the one for master. If you don't have an image you can fetch it here. The rest can be kept as it is.
Finally, to get reproducible deployments easier, I created a script deploy.sh to fire up deployments using my customization.
source ~/openrc.sh export ENVIRONMENT="mycloud" export CUSTOM_REQUIREMENTS_INSTALL=" ansible-lint" rm -rf /var/tmp/tripleo_local bash devmode.sh --no-gate --ovb -d -w /var/tmp/tripleo_local
If something happens, please file bugs