From a1bc60d4c999254677b67f5a1b03081789a791b2 Mon Sep 17 00:00:00 2001 From: Kevin Carter Date: Mon, 14 Sep 2015 17:43:32 -0500 Subject: [PATCH] adds the config_template to nova The change modifies the nova template tasks such that it's now using the config_template action plugin. This change will make so that config files can be dynamically updated, by a deployer, at run time, without requiring the need to modify the in tree templates or defaults. Partially implements: blueprint tunable-openstack-configuration Change-Id: I9842ed3fcb2cc4aa379a582359b1ca5d0747f714 --- playbooks/roles/os_nova/defaults/main.yml | 7 +++ .../roles/os_nova/tasks/nova_post_install.yml | 61 ++++++++++--------- .../api-paste.ini.j2} | 0 .../templates/{policy.json => policy.json.j2} | 0 .../rootwrap.conf.j2} | 0 5 files changed, 38 insertions(+), 30 deletions(-) rename playbooks/roles/os_nova/{files/api-paste.ini => templates/api-paste.ini.j2} (100%) rename playbooks/roles/os_nova/templates/{policy.json => policy.json.j2} (100%) rename playbooks/roles/os_nova/{files/rootwrap.conf => templates/rootwrap.conf.j2} (100%) diff --git a/playbooks/roles/os_nova/defaults/main.yml b/playbooks/roles/os_nova/defaults/main.yml index 3553365a49..e2b1e7a3e7 100644 --- a/playbooks/roles/os_nova/defaults/main.yml +++ b/playbooks/roles/os_nova/defaults/main.yml @@ -335,3 +335,10 @@ nova_pip_packages: - python-novaclient - keystonemiddleware - nova + + +## Tunable overrides +nova_nova_conf_overrides: {} +nova_rootwrap_conf_overrides: {} +nova_api_paste_ini_overrides: {} +nova_policy_overrides: {} diff --git a/playbooks/roles/os_nova/tasks/nova_post_install.yml b/playbooks/roles/os_nova/tasks/nova_post_install.yml index 7276e9c8bb..f94fff4eb8 100644 --- a/playbooks/roles/os_nova/tasks/nova_post_install.yml +++ b/playbooks/roles/os_nova/tasks/nova_post_install.yml @@ -13,6 +13,37 @@ # See the License for the specific language governing permissions and # limitations under the License. +- name: Copy nova config + config_template: + src: "{{ item.src }}" + dest: "{{ item.dest }}" + owner: "{{ nova_system_user_name }}" + group: "{{ nova_system_group_name }}" + mode: "0644" + config_overrides: "{{ item.config_overrides }}" + config_type: "{{ item.config_type }}" + with_items: + - src: "nova.conf.j2" + dest: "/etc/nova/nova.conf" + config_overrides: "{{ nova_nova_conf_overrides }}" + config_type: "ini" + - src: "rootwrap.conf.j2" + dest: "/etc/nova/rootwrap.conf" + config_overrides: "{{ nova_rootwrap_conf_overrides }}" + config_type: "ini" + - src: "api-paste.ini.j2" + dest: "/etc/nova/api-paste.ini" + config_overrides: "{{ nova_api_paste_ini_overrides }}" + config_type: "ini" + - src: "policy.json.j2" + dest: "/etc/nova/policy.json" + config_overrides: "{{ nova_policy_overrides }}" + config_type: "json" + notify: Restart nova services + tags: + - nova-config + - nova-post-install + - name: Generate nova config copy: src: "{{ item.src }}" @@ -20,42 +51,12 @@ owner: "{{ nova_system_user_name }}" group: "{{ nova_system_group_name }}" with_items: - - { src: "rootwrap.conf", dest: "/etc/nova/rootwrap.conf" } - { src: "rootwrap.d/api-metadata.filters", dest: "/etc/nova/rootwrap.d/api-metadata.filters" } - { src: "rootwrap.d/baremetal-compute-ipmi.filters", dest: "/etc/nova/rootwrap.d/baremetal-compute-ipmi.filters" } - { src: "rootwrap.d/baremetal-deploy-helper.filters", dest: "/etc/nova/rootwrap.d/baremetal-deploy-helper.filters" } - { src: "rootwrap.d/compute.filters", dest: "/etc/nova/rootwrap.d/compute.filters" } - { src: "rootwrap.d/network.filters", dest: "/etc/nova/rootwrap.d/network.filters" } - - { src: "api-paste.ini", dest: "/etc/nova/api-paste.ini" } notify: Restart nova services tags: - nova-config - nova-post-install - -- name: Copy nova config - template: - src: "{{ item.src }}" - dest: "{{ item.dest }}" - owner: "{{ nova_system_user_name }}" - group: "{{ nova_system_group_name }}" - with_items: - - { src: "nova.conf.j2", dest: "/etc/nova/nova.conf" } - notify: Restart nova services - tags: - - nova-config - - nova-post-install - -- name: Apply updates to Policy file - config_template: - src: "policy.json" - dest: "/etc/nova/policy.json" - owner: "{{ nova_system_user_name }}" - group: "{{ nova_system_group_name }}" - mode: "0644" - config_overrides: "{{ nova_policy_overrides|default({}) }}" - config_type: "json" - notify: - - Restart nova services - tags: - - nova-config - - nova-post-install diff --git a/playbooks/roles/os_nova/files/api-paste.ini b/playbooks/roles/os_nova/templates/api-paste.ini.j2 similarity index 100% rename from playbooks/roles/os_nova/files/api-paste.ini rename to playbooks/roles/os_nova/templates/api-paste.ini.j2 diff --git a/playbooks/roles/os_nova/templates/policy.json b/playbooks/roles/os_nova/templates/policy.json.j2 similarity index 100% rename from playbooks/roles/os_nova/templates/policy.json rename to playbooks/roles/os_nova/templates/policy.json.j2 diff --git a/playbooks/roles/os_nova/files/rootwrap.conf b/playbooks/roles/os_nova/templates/rootwrap.conf.j2 similarity index 100% rename from playbooks/roles/os_nova/files/rootwrap.conf rename to playbooks/roles/os_nova/templates/rootwrap.conf.j2