diff --git a/defaults/main.yml b/defaults/main.yml index 8845c5e..7c59f87 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -87,13 +87,6 @@ designate_enable_v2_api: True # Designate services info designate_role_name: admin -designate_central_program_name: designate-central -designate_pool_manager_program_name: designate-pool-manager -designate_zone_manager_program_name: designate-zone-manager -designate_mdns_program_name: designate-mdns -designate_sink_program_name: designate-sink -designate_api_program_name: designate-api - ## Service Type and Data designate_service_region: RegionOne designate_service_endpoint_type: internalURL @@ -129,14 +122,26 @@ designate_pip_packages: - pycrypto - warlock -## Service Names -designate_service_names: - - "{{ designate_api_program_name }}" - - "{{ designate_central_program_name }}" - - "{{ designate_pool_manager_program_name }}" - - "{{ designate_zone_manager_program_name }}" - - "{{ designate_mdns_program_name }}" - - "{{ designate_sink_program_name }}" +## Service Name-Group Mapping +designate_services: + designate-central: + group: designate_central + service_name: designate-central + designate-pool-manager: + group: designate_pool_manager + service_name: designate-pool-manager + designate-zone-manager: + group: designate_zone_manager + service_name: designate-zone-manager + designate-mdns: + group: designate_mdns + service_name: designate-mdns + designate-sink: + group: designate_sink + service_name: designate-sink + designate-api: + group: designate_api + service_name: designate-api # 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 27a9324..0627b60 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -1,4 +1,6 @@ +--- # Copyright 2016, Tata Consultancy Services +# Copyright 2015, 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. @@ -12,47 +14,21 @@ # See the License for the specific language governing permissions and # limitations under the License. -- name: Restart designate api - service: - name: "{{ designate_api_program_name }}" - state: "restarted" - pattern: "{{ designate_api_program_name }}" +- name: Reload systemd daemon + command: "systemctl daemon-reload" + notify: + - Restart designate services -- name: Restart designate central - service: - name: "{{ designate_central_program_name }}" - state: "restarted" - pattern: "{{ designate_central_program_name }}" - -- name: Restart designate pool-manager - service: - name: "{{ designate_pool_manager_program_name }}" - state: "restarted" - pattern: "{{ designate_pool_manager_program_name }}" - -- name: Restart designate zone-manager - service: - name: "{{ designate_zone_manager_program_name }}" - state: "restarted" - pattern: "{{ designate_zone_manager_program_name }}" - -- name: Restart designate mdns - service: - name: "{{ designate_mdns_program_name }}" - state: "restarted" - pattern: "{{ designate_mdns_program_name }}" - -- name: Restart designate sink - service: - name: "{{ designate_sink_program_name }}" - state: "restarted" - pattern: "{{ designate_sink_program_name }}" +- name: Reload upstart init scripts + shell: | + initctl reload-configuration + notify: + - Restart designate services - name: Restart designate services service: - name: "{{ item }}" + name: "{{ item.value.service_name }}" state: "restarted" - pattern: "{{ item }}" - with_items: "{{ designate_service_names }}" - failed_when: false - + pattern: "{{ item.value.service_name }}" + with_dict: "{{ designate_services }}" + when: inventory_hostname in groups[item.value.group] diff --git a/tasks/designate_init.yml b/tasks/designate_init.yml deleted file mode 100644 index 3ce3aff..0000000 --- a/tasks/designate_init.yml +++ /dev/null @@ -1,70 +0,0 @@ ---- -# Copyright 2016, Tata Consultancy Services -# -# 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: designate_init_common.yml - vars: - program_name: "{{ designate_api_program_name }}" - service_name: "{{ designate_service_name }}" - system_user: "{{ designate_system_user_name }}" - system_group: "{{ designate_system_group_name }}" - service_home: "{{ designate_system_user_home }}" - when: inventory_hostname in groups['designate_api'] - -- include: designate_init_common.yml - vars: - program_name: "{{ designate_central_program_name }}" - service_name: "{{ designate_service_name }}" - system_user: "{{ designate_system_user_name }}" - system_group: "{{ designate_system_group_name }}" - service_home: "{{ designate_system_user_home }}" - when: inventory_hostname in groups['designate_central'] - -- include: designate_init_common.yml - vars: - program_name: "{{ designate_pool_manager_program_name }}" - service_name: "{{ designate_service_name }}" - system_user: "{{ designate_system_user_name }}" - system_group: "{{ designate_system_group_name }}" - service_home: "{{ designate_system_user_home }}" - when: inventory_hostname in groups['designate_pool_manager'] - -- include: designate_init_common.yml - vars: - program_name: "{{ designate_zone_manager_program_name }}" - service_name: "{{ designate_service_name }}" - system_user: "{{ designate_system_user_name }}" - system_group: "{{ designate_system_group_name }}" - service_home: "{{ designate_system_user_home }}" - when: inventory_hostname in groups['designate_zone_manager'] - -- include: designate_init_common.yml - vars: - program_name: "{{ designate_mdns_program_name }}" - service_name: "{{ designate_service_name }}" - system_user: "{{ designate_system_user_name }}" - system_group: "{{ designate_system_group_name }}" - service_home: "{{ designate_system_user_home }}" - when: inventory_hostname in groups['designate_mdns'] - -- include: designate_init_common.yml - vars: - program_name: "{{ designate_sink_program_name }}" - service_name: "{{ designate_service_name }}" - system_user: "{{ designate_system_user_name }}" - system_group: "{{ designate_system_group_name }}" - service_home: "{{ designate_system_user_home }}" - when: inventory_hostname in groups['designate_sink'] - - diff --git a/tasks/designate_init_common.yml b/tasks/designate_init_common.yml index 4dc2cd6..a9e37a1 100644 --- a/tasks/designate_init_common.yml +++ b/tasks/designate_init_common.yml @@ -5,7 +5,7 @@ # 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 +# 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, @@ -23,7 +23,9 @@ - name: Load service service: - name: "{{ program_name }}" + name: "{{ item.value.service_name }}" enabled: "yes" + with_dict: "{{ designate_services }}" + when: inventory_hostname in groups[item.value.group] notify: - Restart designate services diff --git a/tasks/designate_init_systemd.yml b/tasks/designate_init_systemd.yml index 062556b..ad3c95d 100644 --- a/tasks/designate_init_systemd.yml +++ b/tasks/designate_init_systemd.yml @@ -15,19 +15,23 @@ - name: Create TEMP run dir file: - path: "/var/run/{{ program_name }}" + path: "/var/run/{{ item.value.service_name }}" state: directory - owner: "{{ system_user }}" - group: "{{ system_group }}" + owner: "{{ designate_system_user_name }}" + group: "{{ designate_system_group_name }}" mode: "02755" + with_dict: "{{ designate_services }}" + when: inventory_hostname in groups[item.value.group] - name: Create TEMP lock dir file: - path: "/var/lock/{{ program_name }}" + path: "/var/lock/{{ item.value.service_name }}" state: directory - owner: "{{ system_user }}" - group: "{{ system_group }}" + owner: "{{ designate_system_user_name }}" + group: "{{ designate_system_group_name }}" mode: "02755" + with_dict: "{{ designate_services }}" + when: inventory_hostname in groups[item.value.group] - name: Create tempfile.d entry template: @@ -36,18 +40,17 @@ mode: "0644" owner: "root" group: "root" + with_dict: "{{ designate_services }}" + when: inventory_hostname in groups[item.value.group] - name: Place the systemd init script template: src: "designate-systemd-init.j2" - dest: "/etc/systemd/system/{{ program_name }}.service" + dest: "/etc/systemd/system/{{ item.value.service_name }}.service" mode: "0644" owner: "root" group: "root" - register: systemd_init - -- name: Reload the systemd daemon - command: "systemctl daemon-reload" - when: systemd_init | changed + with_dict: "{{ designate_services }}" + when: inventory_hostname in groups[item.value.group] notify: - - Restart designate services + - Reload systemd daemon diff --git a/tasks/designate_init_upstart.yml b/tasks/designate_init_upstart.yml index d202454..28b4fc8 100644 --- a/tasks/designate_init_upstart.yml +++ b/tasks/designate_init_upstart.yml @@ -1,5 +1,6 @@ --- # Copyright 2016, Tata Consultancy Services +# Copyright 2015, 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. @@ -16,17 +17,11 @@ - name: Place the init script template: src: "designate-upstart-init.j2" - dest: "/etc/init/{{ program_name }}.conf" + dest: "/etc/init/{{ item.value.service_name }}.conf" mode: "0644" owner: "root" group: "root" - register: upstart_init + with_dict: "{{ designate_services }}" + when: inventory_hostname in groups[item.value.group] notify: - - Restart designate services - -- name: Reload init scripts - shell: | - initctl reload-configuration - when: upstart_init | changed - notify: - - Restart designate services + - Reload upstart init scripts diff --git a/tasks/main.yml b/tasks/main.yml index bf8c398..46e4ab3 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -48,7 +48,7 @@ - designate-install - designate-config -- include: designate_init.yml +- include: designate_init_common.yml tags: - designate-install diff --git a/templates/designate-systemd-init.j2 b/templates/designate-systemd-init.j2 index 7e7195a..44650eb 100644 --- a/templates/designate-systemd-init.j2 +++ b/templates/designate-systemd-init.j2 @@ -7,13 +7,13 @@ After=network.target [Service] Type=simple -User={{ system_user }} -Group={{ system_group }} +User={{ designate_system_user_name }} +Group={{ designate_system_group_name }} {% if program_override is defined %} -ExecStart={{ program_override }} {{ program_config_options|default('') }} --log-file=/var/log/designate/{{ program_name }}.log +ExecStart={{ program_override }} {{ program_config_options|default('') }} --log-file=/var/log/designate/{{ item.value.service_name }}.log {% else %} -ExecStart={{ designate_bin }}/{{ program_name }} {{ program_config_options|default('') }} --log-file=/var/log/designate/{{ program_name }}.log +ExecStart={{ designate_bin }}/{{ item.value.service_name }} {{ program_config_options|default('') }} --log-file=/var/log/designate/{{ item.value.service_name }}.log {% endif %} # Give a reasonable amount of time for the server to start up/shut down diff --git a/templates/designate-systemd-tempfiles.j2 b/templates/designate-systemd-tempfiles.j2 index b723d85..00da307 100644 --- a/templates/designate-systemd-tempfiles.j2 +++ b/templates/designate-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 }} +D /var/lock/{{ item.value.service_name }} 2755 {{ designate_system_user_name }} {{ designate_system_group_name }} +D /var/run/{{ item.value.service_name }} 2755 {{ designate_system_user_name }} {{ designate_system_group_name }} diff --git a/templates/designate-upstart-init.j2 b/templates/designate-upstart-init.j2 index b4c5fec..49da6b0 100644 --- a/templates/designate-upstart-init.j2 +++ b/templates/designate-upstart-init.j2 @@ -1,9 +1,8 @@ # {{ ansible_managed }} -# vim:set ft=upstart ts=2 et: -description "{{ program_name }}" -author "Swati Sharma " +description "{{ item.value.service_name }}" +author "Kevin Carter " start on runlevel [2345] stop on runlevel [016] @@ -12,18 +11,18 @@ respawn respawn limit 10 5 # Set the RUNBIN environment variable -env RUNBIN="{{ designate_bin }}/{{ program_name }}" +env RUNBIN="{{ designate_bin }}/{{ item.value.service_name }}" # Change directory to service users home -chdir "{{ service_home }}" +chdir "{{ designate_system_user_home }}" # 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.value.service_name }}" + chown {{ designate_system_user_name }}:{{ designate_system_group_name }} "/var/run/{{ item.value.service_name }}" - mkdir -p "/var/lock/{{ program_name }}" - chown {{ system_user }}:{{ system_group }} "/var/lock/{{ program_name }}" + mkdir -p "/var/lock/{{ item.value.service_name }}" + chown {{ designate_system_user_name }}:{{ designate_system_group_name }} "/var/lock/{{ item.value.service_name }}" . {{ designate_bin }}/activate @@ -31,16 +30,15 @@ end script # Post stop actions post-stop script - rm "/var/run/{{ program_name }}/{{ program_name }}.pid" + rm "/var/run/{{ item.value.service_name }}/{{ item.value.service_name }}.pid" end script # Run the start up job exec start-stop-daemon --start \ - --chuid {{ system_user }} \ + --chuid {{ designate_system_user_name }} \ --make-pidfile \ - --pidfile /var/run/{{ program_name }}/{{ program_name }}.pid \ + --pidfile /var/run/{{ item.value.service_name }}/{{ item.value.service_name }}.pid \ --exec "{{ program_override|default('$RUNBIN') }}" \ -- {{ program_config_options|default('') }} \ - --log-file=/var/log/{{ service_name }}/{{ program_name }}.log - + --log-file=/var/log/{{ designate_service_name }}/{{ item.value.service_name }}.log

AltStyle によって変換されたページ (->オリジナル) /