diff --git a/playbooks/site_post.yml b/playbooks/cleanup.yml similarity index 100% rename from playbooks/site_post.yml rename to playbooks/cleanup.yml diff --git a/playbooks/site_local.yml b/playbooks/site_local.yml deleted file mode 100755 index d608220..0000000 --- a/playbooks/site_local.yml +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env ansible-playbook -# vim:ft=ansible: ---- -- import_playbook: local_dns.yml diff --git a/playbooks/site_main.yml b/playbooks/site_main.yml deleted file mode 100755 index 565527d..0000000 --- a/playbooks/site_main.yml +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env ansible-playbook -# vim:ft=ansible: ---- - # Main playbooks for machines across my environments - # Does not include supplementary management configuration - # Home configuration -- import_playbook: home_db.yml -- import_playbook: home_fs.yml -- import_playbook: home_app.yml -- import_playbook: home_game.yml -- import_playbook: home_media.yml -- import_playbook: home_automation.yml -- import_playbook: home_bastion.yml - # Production configuration -- import_playbook: prod_db.yml -- import_playbook: prod_web.yml -- import_playbook: prod_com.yml -- import_playbook: prod_game.yml diff --git a/playbooks/site_pre.yml b/playbooks/site_pre.yml deleted file mode 100755 index 4e67f0c..0000000 --- a/playbooks/site_pre.yml +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env ansible-playbook -# vim:ft=ansible: ---- - # Preambulatory system configuration - # It's implicit that configuration here MUST preceed site_main.yml -- import_playbook: all.yml - # Device type configuration -- import_playbook: "{{ item }}" - loop: "{{ lookup('fileglob' 'device_types_*.yml') }}" - # Platform configuration -- import_playbook: "{{ item }}" - loop: "{{ lookup('fileglob' 'platforms_*.yml') }}" - # Manufacturer configuration -- import_playbook: "{{ item }}" - loop: "{{ lookup('fileglob' 'manufacturers_*.yml') }}" - # Tags for fundamental services -- import_playbook: "{{ item }}" - loop: "{{ lookup('fileglob' 'tags_.yml') }}" - # Role (in the Netbox sense) configuration -- import_playbook: "{{ item }}" - loop: "{{ lookup('fileglob' 'device_roles_*.yml') }}" diff --git a/site.yml b/site.yml index d8800b2..dcb984a 100755 --- a/site.yml +++ b/site.yml @@ -1,11 +1,26 @@ #!/usr/bin/env ansible-playbook # vim:ft=ansible: --- - # Configuration that happens local to the Ansible controller -- import_playbook: playbooks/site_local.yml - # Preambulatory system configuration -- import_playbook: playbooks/site_pre.yml - # Main environment configuration -- import_playbook: playbooks/site_main.yml - # Post-play housekeeping and reboots -- import_playbook: playbooks/site_post.yml + # Local configuration goes first +- import_playbook: "{{ item }}" + loop: "{{ lookup('fileglob' 'local_*.yml') }}" + # Then we run against all hosts, performing foundational tasks +- import_playbook: all.yml + # Then we narrow things down to device-specific configuration +- import_playbook: "{{ item }}" + loop: "{{ lookup('fileglob' 'device_types_*.yml') }}" +- import_playbook: "{{ item }}" + loop: "{{ lookup('fileglob' 'platforms_*.yml') }}" +- import_playbook: "{{ item }}" + loop: "{{ lookup('fileglob' 'manufacturers_*.yml') }}" +- import_playbook: "{{ item }}" + loop: "{{ lookup('fileglob' 'tags_.yml') }}" +- import_playbook: "{{ item }}" + loop: "{{ lookup('fileglob' 'device_roles_*.yml') }}" + # And finally we configure the core services of the machine +- import_playbook: "{{ item }}" + loop: "{{ lookup('fileglob' 'home_*.yml') }}" +- import_playbook: "{{ item }}" + loop: "{{ lookup('fileglob' 'prod_*.yml') }}" + # Once that's all done, we clean up +- import_playbook: cleanup.yml