Joe Talerico 8c668d51aa Gather script for containers
Currently our gather playbook assumes all configuration files will be in
/etc. This assumption isn't true with container deployments. Currently
the configuration files are located in
/var/lib/config-data/<service>/etc/<service>/.

The Gather script needs to support both container and non-container
deployments. This patchset updates the config parser python script
to check if a service is in the running containers list and then
determine it's appropriate path, grab all of multiple config files
in that path, then parse and drop them off for ansible to use.

This method automagically supports all possible mixes of containerized
uncontainerized services and will always grab the correct config even
if that changes build to build or run to run.

It's also easily extensible for many possible config locations or
different container types by adding another condition or additional
search paths.

Change-Id: I95a3059c7fc263733ac64aa894c6dbf11e2a909f
Closes-bug: #1701264
2017-07-13 10:02:13 -04:00

66 lines
1.9 KiB
YAML

---
#
# Tasks to set undercloud facts
#
- name: Check that the undercloud.conf exists
become: true
stat: path=/home/stack/undercloud.conf
register: undercloud_conf
- name: Undercloud.conf
become: true
shell: python /tmp/openstack-config-parser.py undercloud /tmp/out.yml
when: undercloud_conf.stat.exists
- name: Fetch output
fetch: src=/tmp/out.yml dest=/tmp/out.yml flat=yes
when: undercloud_conf.stat.exists
- name: Load configuration variables
include_vars: /tmp/out.yml
when: undercloud_conf.stat.exists
- name: Get max_connections on the database
shell: mysql -e "show variables like 'max_connections';" | grep max_connections | awk '{print $2}'
register: max_conn
ignore_errors: true
- name: Set max database connections
set_fact:
openstack_mysql_max_connections: "{{ max_conn.stdout }}"
- name : Get file descriptors for the mysql process
shell: cat /proc/$(pgrep mysqld_safe)/limits | grep "open files" | awk '{print $4}'
register: mysql_desc
- name: Set file descriptors fact for mysql
set_fact:
openstack_mysql_file_descriptors: "{{ mysql_desc.stdout }}"
- name : Get rabbitmq file descriptors
shell: rabbitmqctl status | grep total_limit | awk -F',' '{print $2}' | sed 's/.$//'
register: rabbitmq_desc
ignore_errors: true
- name: Set rabbitmq file descriptors
set_fact:
openstack_rabbitmq_file_descriptors: "{{ rabbitmq_desc.stdout }}"
- name: Get Controller Nodes number
shell: source ~/stackrc; nova list | grep controller | grep ACTIVE | wc -l
register: controller_count
- name : Set Controler number fact
set_fact:
osp_controllers_number: "{{ controller_count.stdout }}"
- name: Get Compute Nodes number
shell: source ~/stackrc; nova list | grep compute | grep ACTIVE | wc -l
register: compute_count
- name : Set Commpute number fact
set_fact:
osp_computes_number: "{{ compute_count.stdout }}"