From a4f5657f275786a8d0b2fb795bae5831c2916ee3 Mon Sep 17 00:00:00 2001 From: Hector I Gonzalez Date: Mon, 11 Apr 2016 13:49:59 -0500 Subject: [PATCH] Updated role using the Multi-Distro framework * The default apt packages have been moved into a var file that is only loaded when the detected OS is matched. * The Install task file has had the apt specific tasks moved into a named install task file. Change-Id: I0b31d5d76d3aaedf3b87550165d0e670b314bebd --- defaults/main.yml | 6 ------ meta/main.yml | 4 +++- tasks/designate_install.yml | 29 +++----------------------- tasks/designate_install_apt.yml | 36 +++++++++++++++++++++++++++++++++ tasks/main.yml | 9 +++++++++ vars/ubuntu-14.04.yml | 20 ++++++++++++++++++ 6 files changed, 71 insertions(+), 33 deletions(-) create mode 100644 tasks/designate_install_apt.yml create mode 100644 vars/ubuntu-14.04.yml diff --git a/defaults/main.yml b/defaults/main.yml index 9e17be6..1264668 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -17,8 +17,6 @@ debug: False verbose: True -## APT Cache options -cache_timeout: 600 # These variables are used in 'developer mode' in order to allow the role # to build an environment directly from a git source without the presence @@ -113,10 +111,6 @@ designate_service_adminuri: "{{ designate_service_proto }}://{{ internal_lb_vip_ designate_service_in_ldap: false -# Common apt packages -designate_apt_packages: - - bind9 - # designate packages that must be installed before anything else designate_requires_pip_packages: - virtualenv diff --git a/meta/main.yml b/meta/main.yml index 939a393..7938614 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -36,6 +36,8 @@ dependencies: - role: pip_install when: - designate_developer_mode | bool - - apt_package_pinning + - role: apt_package_pinning + when: + - ansible_pkg_mgr == 'apt' - galera_client - openstack_openrc diff --git a/tasks/designate_install.yml b/tasks/designate_install.yml index 799b6b8..dd15c0b 100644 --- a/tasks/designate_install.yml +++ b/tasks/designate_install.yml @@ -13,32 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -#TODO(evrardjp): Replace the next 2 tasks by a standard apt with cache -#when https://github.com/ansible/ansible-modules-core/pull/1517 is merged -#in 1.9.x or we move to 2.0 (if tested working) -- name: Check apt last update file - stat: - path: /var/cache/apt - register: apt_cache_stat - tags: - - designate-apt-packages - -- name: Update apt if needed - apt: - update_cache: yes - when: "ansible_date_time.epoch|float - apt_cache_stat.stat.mtime > {{cache_timeout}}" - tags: - - designate-apt-packages - -- name: Install apt packages - apt: - pkg: "{{ item }}" - state: latest - register: install_packages - until: install_packages|success - retries: 5 - delay: 2 - with_items: designate_apt_packages +- include: designate_install_apt.yml + when: + - ansible_pkg_mgr == 'apt' tags: - designate-install - designate-apt-packages diff --git a/tasks/designate_install_apt.yml b/tasks/designate_install_apt.yml new file mode 100644 index 0000000..e57fa0d --- /dev/null +++ b/tasks/designate_install_apt.yml @@ -0,0 +1,36 @@ +# Copyright 2016, Intel Corporation. +# +# 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. + +#TODO(evrardjp): Replace the next 2 tasks by a standard apt with cache +#when https://github.com/ansible/ansible-modules-core/pull/1517 is merged +#in 1.9.x or we move to 2.0 (if tested working) +- name: Check apt last update file + stat: + path: /var/cache/apt + register: apt_cache_stat + +- name: Update apt if needed + apt: + update_cache: yes + when: "ansible_date_time.epoch|float - apt_cache_stat.stat.mtime > {{cache_timeout}}" + +- name: Install apt packages + apt: + pkg: "{{ item }}" + state: latest + register: install_packages + until: install_packages|success + retries: 5 + delay: 2 + with_items: designate_apt_packages diff --git a/tasks/main.yml b/tasks/main.yml index d3e43c8..5078dfd 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -13,6 +13,15 @@ # See the License for the specific language governing permissions and # limitations under the License. +- name: Gather variables for each operating system + include_vars: "{{ item }}" + with_first_found: + - "{{ ansible_distribution | lower }}-{{ ansible_distribution_version | lower }}.yml" + - "{{ ansible_distribution | lower }}.yml" + - "{{ ansible_os_family | lower }}.yml" + tags: + - always + - include: designate_pre_install.yml - include: designate_install.yml - include: designate_post_install.yml diff --git a/vars/ubuntu-14.04.yml b/vars/ubuntu-14.04.yml new file mode 100644 index 0000000..dc4d1fa --- /dev/null +++ b/vars/ubuntu-14.04.yml @@ -0,0 +1,20 @@ +# Copyright 2016, Intel Corporation. +# +# 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. + +## APT Cache options +cache_timeout: 600 + +# Common apt packages +designate_apt_packages: + - bind9 \ No newline at end of file