From 6e0960a743af1efa8af2a6d7a1dd9afac7802d49 Mon Sep 17 00:00:00 2001 From: jkilpatr Date: Thu, 8 Jun 2017 14:34:10 -0400 Subject: [PATCH] Refactor CI playbook into sub playbooks So originally this commit was for ceph compatible gather but I was never super confident that my solution was good on the other hand I made a useful refactor while working on that which I want to keep and commit. This breaks the previously monolithic CI playbook into smaller playbooks that can be composed more easily. Hopefully useful as we move to seperating integration and performance testing. Change-Id: I9fe48a65861caacaf8092d52d837801eec246fb0 --- .../gather/roles/undercloud/tasks/main.yml | 10 ++++ ...metal-virt-undercloud-tripleo-browbeat.yml | 55 +++---------------- ansible/oooq/configure-browbeat.yml | 5 ++ ansible/oooq/disable-ssh-dns.yml | 7 +++ ansible/oooq/gather-metadata.yml | 36 ++++++++++++ ansible/oooq/install-browbeat.yml | 18 ++++++ ansible/oooq/overcloud-collectd.yml | 12 ++++ ansible/oooq/quickstart-browbeat.yml | 32 +++-------- ansible/oooq/undercloud-collectd.yml | 9 +++ setup.cfg | 1 + 10 files changed, 113 insertions(+), 72 deletions(-) create mode 100644 ansible/oooq/configure-browbeat.yml create mode 100644 ansible/oooq/disable-ssh-dns.yml create mode 100644 ansible/oooq/gather-metadata.yml create mode 100644 ansible/oooq/install-browbeat.yml create mode 100644 ansible/oooq/overcloud-collectd.yml create mode 100644 ansible/oooq/undercloud-collectd.yml diff --git a/ansible/gather/roles/undercloud/tasks/main.yml b/ansible/gather/roles/undercloud/tasks/main.yml index e55bce228..1cfe7329d 100644 --- a/ansible/gather/roles/undercloud/tasks/main.yml +++ b/ansible/gather/roles/undercloud/tasks/main.yml @@ -26,40 +26,50 @@ shell: mysql -e "show variables like 'max_connections';" | grep max_connections | awk '{print $2}' register: max_conn ignore_errors: true + when: undercloud_conf.stat.exists - name: Set max database connections set_fact: openstack_mysql_max_connections: "{{ max_conn.stdout }}" + when: undercloud_conf.stat.exists - name : Get file descriptors for the mysql process shell: cat /proc/$(pgrep mysqld_safe)/limits | grep "open files" | awk '{print $4}' register: mysql_desc + when: undercloud_conf.stat.exists - name: Set file descriptors fact for mysql set_fact: openstack_mysql_file_descriptors: "{{ mysql_desc.stdout }}" + when: undercloud_conf.stat.exists - name : Get rabbitmq file descriptors shell: rabbitmqctl status | grep total_limit | awk -F',' '{print $2}' | sed 's/.$//' register: rabbitmq_desc ignore_errors: true + when: undercloud_conf.stat.exists - name: Set rabbitmq file descriptors set_fact: openstack_rabbitmq_file_descriptors: "{{ rabbitmq_desc.stdout }}" + when: undercloud_conf.stat.exists - name: Get Controller Nodes number shell: source ~/stackrc; nova list | grep controller | grep ACTIVE | wc -l register: controller_count + when: undercloud_conf.stat.exists - name : Set Controler number fact set_fact: osp_controllers_number: "{{ controller_count.stdout }}" + when: undercloud_conf.stat.exists - name: Get Compute Nodes number shell: source ~/stackrc; nova list | grep compute | grep ACTIVE | wc -l register: compute_count + when: undercloud_conf.stat.exists - name : Set Commpute number fact set_fact: osp_computes_number: "{{ compute_count.stdout }}" + when: undercloud_conf.stat.exists diff --git a/ansible/oooq/baremetal-virt-undercloud-tripleo-browbeat.yml b/ansible/oooq/baremetal-virt-undercloud-tripleo-browbeat.yml index 4c81a43c5..cb660c2ab 100644 --- a/ansible/oooq/baremetal-virt-undercloud-tripleo-browbeat.yml +++ b/ansible/oooq/baremetal-virt-undercloud-tripleo-browbeat.yml @@ -1,60 +1,19 @@ --- - include: baremetal-prep-virthost.yml -- name: Configure Browbeat - hosts: undercloud - roles: - - browbeat/pre-install-setup +- include: configure-browbeat.yml -- name: Setup Undercloud CollectD - hosts: undercloud - vars: - config_type: "{{group_names[0]}}" - roles: - - browbeat/common - - browbeat/epel - - browbeat/collectd-openstack +- include: undercloud-collectd.yml - include: baremetal-quickstart-extras.yml -- name: Install Browbeat - hosts: undercloud - vars: - results_in_httpd: false - statsd_host: "{{ graphite_host }}" - roles: - - browbeat/common - - browbeat/browbeat - - browbeat/firewall - - browbeat/perfkitbenchmarker - - browbeat/rally - - browbeat/shaker - - browbeat/yoda - - browbeat/flavors - - browbeat/images - - browbeat/browbeat-network - - browbeat/template-configs - - browbeat/statsd-ironic - - browbeat/oooq-metadata +- include: install-browbeat.yml -- name: Disable sshd dns - hosts: overcloud - vars: - disable_ssh_dns: true - roles: - - browbeat/no-sshd-dns +- include: disable-ssh-dns.yml -- name: Setup Overcloud CollectD - hosts: overcloud - vars: - config_type: "{{group_names[0]}}" - graphite_host: "{{graphite_host_template}}" - graphite_password: "{{graphite_password_template}}" - graphite_prefix: "{{graphite_prefix_template}}" - roles: - - browbeat/common - - browbeat/epel - - browbeat/collectd-openstack +- include: overcloud-collectd.yml + +- include: gather-metadata.yml - name: Run Browbeat hosts: undercloud diff --git a/ansible/oooq/configure-browbeat.yml b/ansible/oooq/configure-browbeat.yml new file mode 100644 index 000000000..bacb1b679 --- /dev/null +++ b/ansible/oooq/configure-browbeat.yml @@ -0,0 +1,5 @@ +--- +- name: Configure Browbeat + hosts: undercloud + roles: + - browbeat/pre-install-setup \ No newline at end of file diff --git a/ansible/oooq/disable-ssh-dns.yml b/ansible/oooq/disable-ssh-dns.yml new file mode 100644 index 000000000..8710ec411 --- /dev/null +++ b/ansible/oooq/disable-ssh-dns.yml @@ -0,0 +1,7 @@ +--- +- name: Disable sshd dns + hosts: overcloud + vars: + disable_ssh_dns: true + roles: + - browbeat/no-sshd-dns diff --git a/ansible/oooq/gather-metadata.yml b/ansible/oooq/gather-metadata.yml new file mode 100644 index 000000000..de362386c --- /dev/null +++ b/ansible/oooq/gather-metadata.yml @@ -0,0 +1,36 @@ +--- +- hosts: compute + remote_user: "heat_admin" + become: true + roles: + - browbeat-metadata/common + - browbeat-metadata/compute + +- hosts: controller + remote_user: "heat_admin" + become: true + roles: + - browbeat-metadata/common + - browbeat-metadata/nova + - browbeat-metadata/neutron + - browbeat-metadata/keystone + - browbeat-metadata/ceilometer + - browbeat-metadata/gnocchi + - browbeat-metadata/cinder + - browbeat-metadata/heat + - browbeat-metadata/mysql + - browbeat-metadata/rabbitmq + - browbeat-metadata/glance + +- hosts: undercloud + remote_user: "stack" + become: true + roles: + - browbeat-metadata/common + - browbeat-metadata/undercloud + +- name: Dump metadata to files + hosts: undercloud + roles: + - browbeat-metadata/dump-facts + - browbeat/oooq-metadata diff --git a/ansible/oooq/install-browbeat.yml b/ansible/oooq/install-browbeat.yml new file mode 100644 index 000000000..4a922fc79 --- /dev/null +++ b/ansible/oooq/install-browbeat.yml @@ -0,0 +1,18 @@ +--- +- name: Install Browbeat + hosts: undercloud + vars: + results_in_httpd: false + statsd_host: "{{ graphite_host }}" + roles: + - browbeat/common + - browbeat/browbeat + - browbeat/firewall + - browbeat/perfkitbenchmarker + - browbeat/rally + - browbeat/shaker + - browbeat/flavors + - browbeat/images + - browbeat/browbeat-network + - browbeat/template-configs + - browbeat/statsd-ironic diff --git a/ansible/oooq/overcloud-collectd.yml b/ansible/oooq/overcloud-collectd.yml new file mode 100644 index 000000000..c2a444c60 --- /dev/null +++ b/ansible/oooq/overcloud-collectd.yml @@ -0,0 +1,12 @@ +--- +- name: Setup Overcloud CollectD + hosts: overcloud + vars: + config_type: "{{group_names[0]}}" + graphite_host: "{{graphite_host_template}}" + graphite_password: "{{graphite_password_template}}" + graphite_prefix: "{{graphite_prefix_template}}" + roles: + - browbeat/common + - browbeat/epel + - browbeat/collectd-openstack diff --git a/ansible/oooq/quickstart-browbeat.yml b/ansible/oooq/quickstart-browbeat.yml index 783173cda..8a42aeefa 100644 --- a/ansible/oooq/quickstart-browbeat.yml +++ b/ansible/oooq/quickstart-browbeat.yml @@ -2,34 +2,18 @@ - include: quickstart-extras.yml -- name: Configure Browbeat - hosts: undercloud - roles: - - browbeat/pre-install-setup - - browbeat/oooq-metadata +- include: configure-browbeat.yml -- name: Install Browbeat - hosts: undercloud - vars: - results_in_httpd: false - roles: - - browbeat/common - - browbeat/browbeat - - browbeat/browbeat-results - - browbeat/firewall - - browbeat/perfkitbenchmarker - - browbeat/rally - - browbeat/shaker - - browbeat/yoda - - browbeat/flavors - - browbeat/images - - browbeat/browbeat-network - - browbeat/template-configs +- include: undercloud-collectd.yml + +- include: overcloud-collectd.yml + +- include: install-browbeat.yml + +- include: gather-metadata.yml - name: Run Browbeat hosts: undercloud roles: - - browbeat/collectd - - browbeat/bug-check - browbeat/browbeat-run - browbeat/browbeat-classify diff --git a/ansible/oooq/undercloud-collectd.yml b/ansible/oooq/undercloud-collectd.yml new file mode 100644 index 000000000..14c04b6a5 --- /dev/null +++ b/ansible/oooq/undercloud-collectd.yml @@ -0,0 +1,9 @@ +--- +- name: Setup Undercloud CollectD + hosts: undercloud + vars: + config_type: "{{group_names[0]}}" + roles: + - browbeat/common + - browbeat/epel + - browbeat/collectd-openstack diff --git a/setup.cfg b/setup.cfg index 51c0613c8..506850d43 100644 --- a/setup.cfg +++ b/setup.cfg @@ -30,6 +30,7 @@ upload-dir = doc/build/html [files] data_files = + usr/local/share/ansible/roles/browbeat-metadata/ = ansible/gather/roles/* usr/local/share/ansible/roles/browbeat/ = ansible/install/roles/* usr/local/share/ansible/roles/browbeat/ = ansible/oooq/roles/* usr/local/share/ansible/roles/browbeat/browbeat/vars/ = ci-scripts/config/tripleo/oooq-browbeat-role/*