From: Zack Cerza Date: Tue, 23 Jun 2015 19:29:36 +0000 (-0600) Subject: Move cobbler system population to new role X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6ad69f2a206b2f5aec9b5476f004756efa2b2388;p=ceph-cm-ansible.git Move cobbler system population to new role This creates the new cobbler_systems role, which is run after the cobbler and cobbler_profile roles Signed-off-by: Zack Cerza --- diff --git a/cobbler.yml b/cobbler.yml index 59de9c78..687c0a11 100644 --- a/cobbler.yml +++ b/cobbler.yml @@ -11,3 +11,4 @@ - { role: cobbler_profile, distro_name: Ubuntu-12.04-server-x86_64, tags: ['ubuntu-precise'] } - { role: cobbler_profile, distro_name: Ubuntu-14.04-server-x86_64, tags: ['ubuntu-trusty'] } - { role: cobbler_profile, distro_name: Ubuntu-15.04-server-x86_64, tags: ['ubuntu-vivid'] } + - cobbler_systems diff --git a/roles/cobbler/tasks/main.yml b/roles/cobbler/tasks/main.yml index dbaa7a73..b732767b 100644 --- a/roles/cobbler/tasks/main.yml +++ b/roles/cobbler/tasks/main.yml @@ -73,22 +73,7 @@ tags: - distros -- name: Restart cobbler - service: - name: "{{ cobbler_service }}" - state: restarted - changed_when: false - -- name: Wait for cobbler to start - wait_for: port={{ cobbler_port }} - -- include: populate_systems.yml - tags: - - systems - -- name: Run cobbler sync - command: cobbler sync - no_log: true +- include: restart.yml - name: Run cobbler check command: cobbler check diff --git a/roles/cobbler/tasks/populate_systems.yml b/roles/cobbler/tasks/populate_systems.yml deleted file mode 100644 index 59ddc894..00000000 --- a/roles/cobbler/tasks/populate_systems.yml +++ /dev/null @@ -1,27 +0,0 @@ ---- -- name: Get list of cobbler systems - command: cobbler system list - register: cmd_cobbler_systems - no_log: true - -- name: Set cobbler_systems_current - set_fact: - cobbler_systems_current: "[{% for host in cmd_cobbler_systems.stdout.strip().split() %}'{{ host }}.{{ lab_domain }}, {% endfor %}]" - -- name: set cobbler_systems_add - set_fact: - cobbler_systems_add: - "{{ groups.cobbler_managed | difference(cobbler_systems_current) }}" - -- name: Add missing systems to cobbler - command: cobbler system add --name={{ item.split('.')[0] }} --profile={{ default_profile }} --mac={{ hostvars[item].mac }} --ip-address={{ hostvars[item].ip }} --interface={{ hostvars[item].interface }} --kopts="{{ hostvars[item].kernel_options }}" --netboot-enabled false - with_items: cobbler_systems_add - -- name: set cobbler_systems_update - set_fact: - cobbler_systems_update: - "{{ groups.cobbler_managed | intersect(cobbler_systems_current) }}" - -- name: Update existing systems in cobbler - command: cobbler system edit --name={{ item.split('.')[0] }} --mac={{ hostvars[item].mac }} --ip-address={{ hostvars[item].ip }} --interface={{ hostvars[item].interface }} --kopts="{{ hostvars[item].kernel_options }}" - with_items: cobbler_systems_update diff --git a/roles/cobbler/tasks/restart.yml b/roles/cobbler/tasks/restart.yml new file mode 100644 index 00000000..f1ceb3cd --- /dev/null +++ b/roles/cobbler/tasks/restart.yml @@ -0,0 +1,9 @@ +--- +- name: Restart cobbler + service: + name: "{{ cobbler_service }}" + state: restarted + changed_when: false + +- name: Wait for cobbler to start + wait_for: port={{ cobbler_port }} diff --git a/roles/cobbler/tasks/settings.yml b/roles/cobbler/tasks/settings.yml index cadeaad8..d962d3c0 100644 --- a/roles/cobbler/tasks/settings.yml +++ b/roles/cobbler/tasks/settings.yml @@ -9,10 +9,7 @@ lineinfile: dest=/etc/cobbler/settings regexp="^server{{':'}}" line="server{{'\:'}} {% for setting in settings %}{% if setting.name == 'server' %}{{ setting.value }}{% endif %}{% endfor %}" register: server_value -- name: Restart cobbler - service: - name: "{{ cobbler_service }}" - state: restarted +- include: restart.yml when: dynamic_settings|changed or server_value|changed - name: Update settings diff --git a/roles/cobbler_systems/defaults/main.yml b/roles/cobbler_systems/defaults/main.yml new file mode 100644 index 00000000..db468e6a --- /dev/null +++ b/roles/cobbler_systems/defaults/main.yml @@ -0,0 +1,5 @@ +--- +interface: eth0 +kernel_options: '' +default_profile: "Ubuntu-14.04-server-x86_64" + diff --git a/roles/cobbler_systems/tasks/main.yml b/roles/cobbler_systems/tasks/main.yml new file mode 100644 index 00000000..25f6cd5e --- /dev/null +++ b/roles/cobbler_systems/tasks/main.yml @@ -0,0 +1,8 @@ +--- +- include: populate_systems.yml + tags: + - systems + +- name: Run cobbler sync + command: cobbler sync + no_log: true diff --git a/roles/cobbler_systems/tasks/populate_systems.yml b/roles/cobbler_systems/tasks/populate_systems.yml new file mode 100644 index 00000000..59ddc894 --- /dev/null +++ b/roles/cobbler_systems/tasks/populate_systems.yml @@ -0,0 +1,27 @@ +--- +- name: Get list of cobbler systems + command: cobbler system list + register: cmd_cobbler_systems + no_log: true + +- name: Set cobbler_systems_current + set_fact: + cobbler_systems_current: "[{% for host in cmd_cobbler_systems.stdout.strip().split() %}'{{ host }}.{{ lab_domain }}, {% endfor %}]" + +- name: set cobbler_systems_add + set_fact: + cobbler_systems_add: + "{{ groups.cobbler_managed | difference(cobbler_systems_current) }}" + +- name: Add missing systems to cobbler + command: cobbler system add --name={{ item.split('.')[0] }} --profile={{ default_profile }} --mac={{ hostvars[item].mac }} --ip-address={{ hostvars[item].ip }} --interface={{ hostvars[item].interface }} --kopts="{{ hostvars[item].kernel_options }}" --netboot-enabled false + with_items: cobbler_systems_add + +- name: set cobbler_systems_update + set_fact: + cobbler_systems_update: + "{{ groups.cobbler_managed | intersect(cobbler_systems_current) }}" + +- name: Update existing systems in cobbler + command: cobbler system edit --name={{ item.split('.')[0] }} --mac={{ hostvars[item].mac }} --ip-address={{ hostvars[item].ip }} --interface={{ hostvars[item].interface }} --kopts="{{ hostvars[item].kernel_options }}" + with_items: cobbler_systems_update