Bläddra i källkod

[openstack] custom user commands for cloud-init

Allow to specify additional user commands executed on all Nova servers
provisioned via Heat.

An example use case is installing and starting os-collect-config agents
to put Nova servers under the configuration management driven via the
host openstack cloud Heat services. This allows to integrate with another
deployment tools like TripleO.

Signed-off-by: Bogdan Dobrelya <bdobreli@redhat.com>
Bogdan Dobrelya 7 år sedan
förälder
incheckning
5d2eb42f0a

+ 4 - 0
playbooks/openstack/advanced-configuration.md

@@ -273,6 +273,10 @@ openshift_openstack_cluster_node_labels:
     mylabel: myvalue
 ```
 
+`openshift_openstack_provision_user_commands` allows users to execute
+additional post-provisioning commands for all of the created Nova servers in
+the Heat stack. It configures the `runcmd` directive via cloud-init.
+
 The `openshift_openstack_nodes_to_remove` allows you to specify the numerical indexes
 of App nodes that should be removed; for example, ['0', '2'],
 

+ 2 - 0
roles/openshift_openstack/defaults/main.yml

@@ -94,6 +94,8 @@ openshift_openstack_etcd_volume_size: 2
 openshift_openstack_lb_volume_size: 5
 openshift_openstack_ephemeral_volumes: false
 
+# User commands for cloud-init executed on all Nova servers provisioned
+openshift_openstack_provision_user_commands: []
 
 # cloud-config
 openshift_openstack_disable_root: true

+ 7 - 0
roles/openshift_openstack/templates/user_data.j2

@@ -11,3 +11,10 @@ write_files:
     permissions: 440
     content: |
       Defaults:openshift !requiretty
+
+{% if openshift_openstack_provision_user_commands %}
+runcmd:
+{% for cmd in openshift_openstack_provision_user_commands %}
+  - {{ cmd }}
+{% endfor %}
+{% endif %}