diff --git a/defaults/main.yml b/defaults/main.yml index 82dfd2fd..4252d883 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -248,10 +248,15 @@ cinder_pip_packages: # Service Names cinder_service_names: - - cinder-api - - cinder-scheduler - - cinder-volume - - cinder-backup + cinder-api: + group: cinder_api + cinder-scheduler: + group: cinder_scheduler + cinder-volume: + group: cinder_volume + cinder-backup: + group: cinder_backup + condition: "{{ cinder_service_backup_program_enabled | bool }}" # This variable is used by the repo_build process to determine # which host group to check for members of before building the diff --git a/handlers/main.yml b/handlers/main.yml index cc1cb219..8d6d1123 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -15,10 +15,10 @@ - name: Restart cinder services service: - name: "{{ item }}" + name: "{{ item.key }}" state: restarted - pattern: "{{ item }}" - with_items: "{{ cinder_service_names }}" + pattern: "{{ item.key }}" + with_dict: "{{ cinder_service_names }}" failed_when: false - name: Ensure tgt service restarted diff --git a/tasks/cinder_init.yml b/tasks/cinder_init.yml deleted file mode 100644 index 9c7e4aec..00000000 --- a/tasks/cinder_init.yml +++ /dev/null @@ -1,55 +0,0 @@ ---- -# Copyright 2014-2016, Rackspace US, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -- include: cinder_init_common.yml - vars: - program_name: "{{ cinder_service_program_name }}" - service_name: "{{ cinder_service_name }}" - system_user: "{{ cinder_system_user_name }}" - system_group: "{{ cinder_system_group_name }}" - service_home: "{{ cinder_system_home_folder }}" - when: > - inventory_hostname in groups['cinder_api'] - -- include: cinder_init_common.yml - vars: - program_name: "{{ cinder_service_scheduler_program_name }}" - service_name: "{{ cinder_service_name }}" - system_user: "{{ cinder_system_user_name }}" - system_group: "{{ cinder_system_group_name }}" - service_home: "{{ cinder_system_home_folder }}" - when: > - inventory_hostname in groups['cinder_scheduler'] - -- include: cinder_init_common.yml - vars: - program_name: "{{ cinder_service_volume_program_name }}" - service_name: "{{ cinder_service_name }}" - system_user: "{{ cinder_system_user_name }}" - system_group: "{{ cinder_system_group_name }}" - service_home: "{{ cinder_system_home_folder }}" - when: > - inventory_hostname in groups['cinder_volume'] - -- include: cinder_init_common.yml - vars: - program_name: "{{ cinder_service_backup_program_name }}" - service_name: "{{ cinder_service_name }}" - system_user: "{{ cinder_system_user_name }}" - system_group: "{{ cinder_system_group_name }}" - service_home: "{{ cinder_system_home_folder }}" - when: > - inventory_hostname in groups['cinder_backup'] and - cinder_service_backup_program_enabled == true diff --git a/tasks/cinder_init_common.yml b/tasks/cinder_init_common.yml index c4a47020..b4c58e7b 100644 --- a/tasks/cinder_init_common.yml +++ b/tasks/cinder_init_common.yml @@ -24,7 +24,11 @@ - name: Load service service: - name: "{{ program_name }}" + name: "{{ item.key }}" enabled: "yes" + with_dict: "{{ cinder_service_names }}" + when: + - inventory_hostname in groups[item.value.group] + - "{{ item.value.condition | default(true) }}" notify: - Restart cinder services diff --git a/tasks/cinder_init_systemd.yml b/tasks/cinder_init_systemd.yml index 5da5fef4..7bf148b8 100644 --- a/tasks/cinder_init_systemd.yml +++ b/tasks/cinder_init_systemd.yml @@ -16,19 +16,27 @@ - name: Create TEMP run dir file: - path: "/var/run/{{ program_name }}" + path: "/var/run/{{ item.key }}" state: directory - owner: "{{ system_user }}" - group: "{{ system_group }}" + owner: "{{ cinder_system_user_name }}" + group: "{{ cinder_system_group_name }}" mode: "02755" + with_dict: "{{ cinder_service_names }}" + when: + - inventory_hostname in groups[item.value.group] + - "{{ item.value.condition | default(true) }}" - name: Create TEMP lock dir file: - path: "/var/lock/{{ program_name }}" + path: "/var/lock/{{ item.key }}" state: directory - owner: "{{ system_user }}" - group: "{{ system_group }}" + owner: "{{ cinder_system_user_name }}" + group: "{{ cinder_system_group_name }}" mode: "02755" + with_dict: "{{ cinder_service_names }}" + when: + - inventory_hostname in groups[item.value.group] + - "{{ item.value.condition | default(true) }}" - name: Create tempfile.d entry template: @@ -37,15 +45,23 @@ mode: "0644" owner: "root" group: "root" + with_dict: "{{ cinder_service_names }}" + when: + - inventory_hostname in groups[item.value.group] + - "{{ item.value.condition | default(true) }}" - name: Place the systemd init script template: src: "cinder-systemd-init.j2" - dest: "/etc/systemd/system/{{ program_name }}.service" + dest: "/etc/systemd/system/{{ item.key }}.service" mode: "0644" owner: "root" group: "root" register: systemd_init + with_dict: "{{ cinder_service_names }}" + when: + - inventory_hostname in groups[item.value.group] + - "{{ item.value.condition | default(true) }}" - name: Reload the systemd daemon command: "systemctl daemon-reload" diff --git a/tasks/cinder_init_upstart.yml b/tasks/cinder_init_upstart.yml index e9674134..477c80dc 100644 --- a/tasks/cinder_init_upstart.yml +++ b/tasks/cinder_init_upstart.yml @@ -16,11 +16,15 @@ - name: Place the init script template: src: "cinder-upstart-init.j2" - dest: "/etc/init/{{ program_name }}.conf" + dest: "/etc/init/{{ item.key }}.conf" mode: "0644" owner: "root" group: "root" register: upstart_init + with_dict: "{{ cinder_service_names }}" + when: + - inventory_hostname in groups[item.value.group] + - "{{ item.value.condition | default(true) }}" notify: - Restart cinder services @@ -31,10 +35,3 @@ register: upstart_init notify: - Restart cinder services - -- name: Load service - service: - name: "{{ program_name }}" - enabled: "yes" - notify: - - Restart cinder services diff --git a/tasks/main.yml b/tasks/main.yml index d673d238..bbb84821 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -66,7 +66,7 @@ tags: - cinder-install -- include: cinder_init.yml +- include: cinder_init_common.yml tags: - cinder-install diff --git a/templates/cinder-systemd-init.j2 b/templates/cinder-systemd-init.j2 index b486a0ba..effb6183 100644 --- a/templates/cinder-systemd-init.j2 +++ b/templates/cinder-systemd-init.j2 @@ -7,13 +7,13 @@ After=network.target [Service] Type=simple -User={{ system_user }} -Group={{ system_group }} +User={{ cinder_system_user_name }} +Group={{ cinder_system_group_name }} {% if program_override is defined %} -ExecStart={{ program_override }} {{ program_config_options|default('') }} --log-file=/var/log/cinder/{{ program_name }}.log +ExecStart={{ program_override }} {{ program_config_options|default('') }} --log-file=/var/log/cinder/{{ item.key }}.log {% else %} -ExecStart={{ cinder_bin }}/{{ program_name }} {{ program_config_options|default('') }} --log-file=/var/log/cinder/{{ program_name }}.log +ExecStart={{ cinder_bin }}/{{ item.key }} {{ program_config_options|default('') }} --log-file=/var/log/cinder/{{ item.key }}.log {% endif %} # Give a reasonable amount of time for the server to start up/shut down diff --git a/templates/cinder-systemd-tempfiles.j2 b/templates/cinder-systemd-tempfiles.j2 index 3e73b168..459df529 100644 --- a/templates/cinder-systemd-tempfiles.j2 +++ b/templates/cinder-systemd-tempfiles.j2 @@ -1,4 +1,4 @@ # {{ ansible_managed }} -D /var/lock/{{ program_name }} 2755 {{ system_user }} {{ system_group }} -D /var/run/{{ program_name }} 2755 {{ system_user }} {{ system_group }} \ No newline at end of file +D /var/lock/{{ item.key }} 2755 {{ cinder_system_user_name }} {{ cinder_system_group_name }} +D /var/run/{{ item.key }} 2755 {{ cinder_system_user_name }} {{ cinder_system_group_name }} diff --git a/templates/cinder-upstart-init.j2 b/templates/cinder-upstart-init.j2 index 11055947..4c863691 100644 --- a/templates/cinder-upstart-init.j2 +++ b/templates/cinder-upstart-init.j2 @@ -1,6 +1,6 @@ # {{ ansible_managed }} -description "{{ program_name }}" +description "{{ item.key }}" author "Kevin Carter " start on runlevel [2345] @@ -10,18 +10,18 @@ respawn respawn limit 10 5 # Set the RUNBIN environment variable -env RUNBIN="{{ cinder_bin }}/{{ program_name }}" +env RUNBIN="{{ cinder_bin }}/{{ item.key }}" # Change directory to service users home -chdir "{{ service_home }}" +chdir "{{ cinder_system_home_folder }}" # Pre start actions pre-start script - mkdir -p "/var/run/{{ program_name }}" - chown {{ system_user }}:{{ system_group }} "/var/run/{{ program_name }}" + mkdir -p "/var/run/{{ item.key }}" + chown {{ cinder_system_user_name }}:{{ cinder_system_group_name }} "/var/run/{{ item.key }}" - mkdir -p "/var/lock/{{ program_name }}" - chown {{ system_user }}:{{ system_group }} "/var/lock/{{ program_name }}" + mkdir -p "/var/lock/{{ item.key }}" + chown {{ cinder_system_user_name }}:{{ cinder_system_group_name }} "/var/lock/{{ item.key }}" . {{ cinder_bin }}/activate @@ -29,14 +29,14 @@ end script # Post stop actions post-stop script - rm "/var/run/{{ program_name }}/{{ program_name }}.pid" + rm "/var/run/{{ item.key }}/{{ item.key }}.pid" end script # Run the start up job exec start-stop-daemon --start \ - --chuid {{ system_user }} \ + --chuid {{ cinder_system_user_name }} \ --make-pidfile \ - --pidfile /var/run/{{ program_name }}/{{ program_name }}.pid \ + --pidfile /var/run/{{ item.key }}/{{ item.key }}.pid \ --exec "{{ program_override|default('$RUNBIN') }}" \ -- {{ program_config_options|default('') }} \ - --log-file=/var/log/cinder/{{ program_name }}.log + --log-file=/var/log/cinder/{{ item.key }}.log