e77de0d5ff
The configuration generated by docker-puppet may change on update, so checksum the combined files from the config-data directories, to enable detecting those that have changed and restarting the appropriate containers - we need to merge this checksum into the environment passed to the containters, as this will cause paunch to correctly restart containers when the configuration generated changes, even if the rest of the json definition provided by heat does not. Change-Id: I40d9080cf3ad708ef4ed91e46d2b2ae1138bb9c3
51 lines
2.6 KiB
YAML
51 lines
2.6 KiB
YAML
- hosts: localhost
|
|
connection: local
|
|
tasks:
|
|
#####################################################
|
|
# Per step puppet configuration of the baremetal host
|
|
#####################################################
|
|
- name: Write the config_step hieradata
|
|
copy: content="{{dict(step=step|int)|to_json}}" dest=/etc/puppet/hieradata/config_step.json force=true
|
|
- name: Run puppet host configuration for step {{step}}
|
|
# FIXME: modulepath requires ansible 2.4, our builds currently only have 2.3
|
|
# puppet: manifest=/var/lib/tripleo-config/puppet_step_config.pp modulepath=/etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
|
|
puppet: manifest=/var/lib/tripleo-config/puppet_step_config.pp
|
|
######################################
|
|
# Generate config via docker-puppet.py
|
|
######################################
|
|
- name: Run docker-puppet tasks (generate config)
|
|
shell: python /var/lib/docker-puppet/docker-puppet.py
|
|
environment:
|
|
NET_HOST: 'true'
|
|
when: step == "1"
|
|
changed_when: false
|
|
check_mode: no
|
|
##################################################
|
|
# Per step starting of the containers using paunch
|
|
##################################################
|
|
- name: Check if /var/lib/hashed-tripleo-config/docker-container-startup-config-step_{{step}}.json exists
|
|
stat:
|
|
path: /var/lib/tripleo-config/hashed-docker-container-startup-config-step_{{step}}.json
|
|
register: docker_config_json
|
|
# Note docker-puppet.py generates the hashed-*.json file, which is a copy of
|
|
# the *step_n.json with a hash of the generated external config added
|
|
# This acts as a salt to enable restarting the container if config changes
|
|
- name: Start containers for step {{step}}
|
|
command: paunch --debug apply --file /var/lib/tripleo-config/hashed-docker-container-startup-config-step_{{step}}.json --config-id tripleo_step{{step}} --managed-by tripleo-{{role_name}}
|
|
when: docker_config_json.stat.exists
|
|
changed_when: false
|
|
check_mode: no
|
|
########################################################
|
|
# Bootstrap tasks, only performed on bootstrap_server_id
|
|
########################################################
|
|
- name: Run docker-puppet tasks (bootstrap tasks)
|
|
shell: python /var/lib/docker-puppet/docker-puppet.py
|
|
environment:
|
|
CONFIG: /var/lib/docker-puppet/docker-puppet-tasks{{step}}.json
|
|
NET_HOST: "true"
|
|
NO_ARCHIVE: "true"
|
|
STEP: "{{step}}"
|
|
when: deploy_server_id == bootstrap_server_id
|
|
changed_when: false
|
|
check_mode: no
|