138 lines
4.9 KiB
Django/Jinja
138 lines
4.9 KiB
Django/Jinja
#!/bin/bash
|
|
|
|
set -eux
|
|
|
|
### --start_docs
|
|
## Deploying the undercloud
|
|
## ========================
|
|
## ::
|
|
|
|
## * Export the required environment variables.
|
|
## ::
|
|
|
|
{% for var in (undercloud_env_vars|default([])) %}
|
|
export {{ var }}
|
|
{% endfor %}
|
|
|
|
|
|
## * Create the parameters for the deployment.
|
|
## ::
|
|
|
|
cat > {{ working_dir }}/custom_undercloud_deploy.yaml << EOF_CAT
|
|
# custom undercloud deployment parameters from heat
|
|
# NOTE: many of these live in t-h-t in:
|
|
# extraconfig/post_deploy/undercloud_post.yaml
|
|
|
|
resource_registry:
|
|
OS::TripleO::Undercloud::Net::SoftwareConfig: {{overcloud_templates_path}}/net-config-noop.yaml
|
|
|
|
parameter_defaults:
|
|
UndercloudNetworkCidr: {{undercloud_network_cidr}}
|
|
UndercloudDhcpRangeStart: {{undercloud_dhcp_start|default(
|
|
undercloud_network_cidr|nthhost(5))}}
|
|
UndercloudDhcpRangeEnd: {{undercloud_dhcp_end|default(
|
|
undercloud_network_cidr|nthhost(30))}}
|
|
UndercloudNetworkGateway: {{undercloud_network_gateway|default(
|
|
undercloud_network_cidr|nthhost(1))}}
|
|
{% if undercloud_undercloud_nameservers is string %}
|
|
UndercloudNameserver: {{undercloud_undercloud_nameservers.split(',')[0]}}
|
|
{% elif undercloud_undercloud_nameservers is sequence %}
|
|
UndercloudNameserver: {{undercloud_undercloud_nameservers[-1]}}
|
|
{% endif %}
|
|
NeutronServicePlugins: ""
|
|
EOF_CAT
|
|
|
|
## * Update requested packages.
|
|
## ::
|
|
|
|
{% if undercloud_update_packages | default(false) %}
|
|
sudo yum update -y {{ undercloud_update_packages }}
|
|
{% endif %}
|
|
|
|
## * Start the required services.
|
|
## ::
|
|
|
|
sudo systemctl start openvswitch
|
|
sudo systemctl start docker #FIXME: do these in the installer?
|
|
|
|
## * Update the puppet modules or install custom modules.
|
|
## NOTE: breaks installed packages, is a pure hack in for dev envs only!
|
|
## ::
|
|
|
|
# Amend "foo/bar" and uncomment as needed:
|
|
#puppet module install foo/bar || puppet module upgrade foo/bar
|
|
|
|
#MODULE_PATH="{{ working_dir }}/.puppet/code/modules"
|
|
#rm -rf "${MODULE_PATH}/bar"
|
|
#mkdir -p "${MODULE_PATH}"
|
|
#cd "${MODULE_PATH}"
|
|
#git clone -b dev https://github.com/foo/puppet-bar bar
|
|
|
|
# Copy installed/cloned modules and make a symlink
|
|
#sudo rsync -avxH "${MODULE_PATH}" /usr/share/openstack-puppet/
|
|
sudo mkdir -p /etc/puppet/modules/
|
|
sudo ln -f -s /usr/share/openstack-puppet/modules/* /etc/puppet/modules/
|
|
|
|
## * Configure the undercloud containers default parameters
|
|
## ::
|
|
{% if undercloud_docker_registry_host is defined %}
|
|
openstack overcloud container image prepare \
|
|
--env-file {{ working_dir }}/undercloud-containers-default-parameters.yaml \
|
|
{% if containerized_undercloud|bool %}
|
|
-e {{overcloud_templates_path}}/environments/services-docker/ironic.yaml \
|
|
-e {{overcloud_templates_path}}/environments/services-docker/mistral.yaml \
|
|
-e {{overcloud_templates_path}}/environments/services-docker/zaqar.yaml \
|
|
-e {{overcloud_templates_path}}/environments/docker.yaml \
|
|
{% endif %}
|
|
--namespace {{ undercloud_docker_registry_host }}:{{ undercloud_docker_registry_port }}/{{ undercloud_docker_registry_namespace }}
|
|
{% if undercloud_docker_registry_insecure|bool %}
|
|
echo " DockerInsecureRegistryAddress: {{ undercloud_docker_registry_host }}:{{ undercloud_docker_registry_port }}" >> \
|
|
{{ working_dir }}/undercloud-containers-default-parameters.yaml
|
|
{% endif %}
|
|
{% else %}
|
|
openstack overcloud container image prepare \
|
|
{% if containerized_undercloud|bool %}
|
|
-e {{overcloud_templates_path}}/environments/services-docker/ironic.yaml \
|
|
-e {{overcloud_templates_path}}/environments/services-docker/mistral.yaml \
|
|
-e {{overcloud_templates_path}}/environments/services-docker/zaqar.yaml \
|
|
-e {{overcloud_templates_path}}/environments/docker.yaml \
|
|
{% endif %}
|
|
--env-file {{ working_dir }}/undercloud-containers-default-parameters.yaml
|
|
{% endif %}
|
|
|
|
echo "============================="
|
|
echo "Undercloud containers default parameters:"
|
|
cat {{ working_dir }}/undercloud-containers-default-parameters.yaml
|
|
echo "============================="
|
|
|
|
## * Set the local ip used for the undercloud install
|
|
## ::
|
|
|
|
undercloud_local_ip={{ hostvars['undercloud'].undercloud_ip }}
|
|
|
|
## * Deploy the undercloud
|
|
## ::
|
|
|
|
sudo openstack undercloud deploy \
|
|
--templates={{overcloud_templates_path}} \
|
|
--local-ip=$undercloud_local_ip \
|
|
-e {{ working_dir }}/custom_undercloud_deploy.yaml \
|
|
{% if containerized_undercloud|bool %}
|
|
-e {{overcloud_templates_path}}/environments/services-docker/ironic.yaml \
|
|
-e {{overcloud_templates_path}}/environments/services-docker/mistral.yaml \
|
|
-e {{overcloud_templates_path}}/environments/services-docker/zaqar.yaml \
|
|
-e {{overcloud_templates_path}}/environments/docker.yaml \
|
|
-e {{ working_dir }}/undercloud-containers-default-parameters.yaml \
|
|
{% endif %}
|
|
{{ undercloud_extra_args }} \
|
|
-e {{ working_dir }}/hieradata-overrides-t-h-t-undercloud.yaml
|
|
|
|
## * Copy the Openstack credentials file to the non root user.
|
|
## ::
|
|
|
|
sudo cp /root/stackrc {{ working_dir }}/stackrc
|
|
sudo chown {{ undercloud_user }}:{{ undercloud_user }} {{ working_dir }}/stackrc
|
|
|
|
### --stop_docs
|
|
|