From 185d1d46799c2985ab85c749c9bd706303f9e9c1 Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Fri, 24 Nov 2023 11:22:41 +0000 Subject: [PATCH 1/5] Add os_config role Imported from https://github.com/stackhpc/ansible-role-os-config --- roles/os_config/README.md | 77 +++++++++++++++++++++++++++++++ roles/os_config/defaults/main.yml | 14 ++++++ roles/os_config/meta/main.yml | 26 +++++++++++ roles/os_config/tasks/main.yml | 15 ++++++ roles/os_config/tests/inventory | 2 + roles/os_config/tests/test.yml | 6 +++ 6 files changed, 140 insertions(+) create mode 100644 roles/os_config/README.md create mode 100644 roles/os_config/defaults/main.yml create mode 100644 roles/os_config/meta/main.yml create mode 100644 roles/os_config/tasks/main.yml create mode 100644 roles/os_config/tests/inventory create mode 100644 roles/os_config/tests/test.yml diff --git a/roles/os_config/README.md b/roles/os_config/README.md new file mode 100644 index 0000000..bddd0c5 --- /dev/null +++ b/roles/os_config/README.md @@ -0,0 +1,77 @@ +stackhpc.os-config +================== + +[![Build Status](https://www.travis-ci.org/stackhpc/ansible-role-os-config.svg?branch=master)](https://www.travis-ci.org/stackhpc/ansible-role-os-config) + +Add openstack client config file to default location of +`/etc/openstack/clouds.yaml` + +Requirements +------------ + +No requirements beyond installing Ansible. + +Role Variables +-------------- + +`os_config_content` is a string that is written out into the config file. +Its often best setting that as an inline vault variable. + +`os_config_destination` is the directory where the configuration is written. +This defaults to the home directory of the ansible user, but another common +location is "/etc/openstack". + +Dependencies +------------ + +There are no requirements for any other Ansible roles. + +Example Playbook +---------------- + +While you probably want to use and inline vault variable, here is a nice +example of using this role in a playbook: + + --- + - hosts: all + vars: + ansible_become: yes + my_cloud_config: | + --- + clouds: + mycloud: + auth: + auth_url: http://openstack.example.com:5000 + project_name: p3 + username: user + password: secretpassword + region: RegionOne + roles: + - role: stackhpc.os-config + os_config_content: "{{ my_cloud_config }}" + os_config_destination: "/etc/openstack" + os_config_owner: root + os_config_group: root + +An easy way to this example is: + + sudo yum install python-virtualenv libselinux-python + + virtualenv .venv --system-site-packages + . .venv/bin/activate + pip install -U pip + pip install -U ansible + + ansible-galaxy install stackhpc.os-config + + ansible-playbook -i "localhost," -c local test.yml + +License +------- + +Apache 2 + +Author Information +------------------ + +http://www.stackhpc.com diff --git a/roles/os_config/defaults/main.yml b/roles/os_config/defaults/main.yml new file mode 100644 index 0000000..5564aee --- /dev/null +++ b/roles/os_config/defaults/main.yml @@ -0,0 +1,14 @@ +--- +os_config_destination: "/home/{{ ansible_user }}/.config/openstack" +os_config_owner: "{{ ansible_user }}" +os_config_group: "{{ ansible_user }}" +os_config_content: | + --- + clouds: + myprivateclound: + auth: + auth_url: http://openstack.example.com:5000 + project_name: p3 + username: user + password: secretpassword + region: RegionOne diff --git a/roles/os_config/meta/main.yml b/roles/os_config/meta/main.yml new file mode 100644 index 0000000..4870ca4 --- /dev/null +++ b/roles/os_config/meta/main.yml @@ -0,0 +1,26 @@ +galaxy_info: + #role_name: os_config + author: StackHPC Ltd + description: Add OpenStack client configuration. + company: StackHPC Ltd + + issue_tracker_url: https://github.com/stackhpc/ansible-role-os-config/issues + + license: Apache2 + + min_ansible_version: 2.0 + + # If this a Container Enabled role, provide the minimum Ansible Container version. + # min_ansible_container_version: + + #github_branch: + + platforms: + - name: EL + versions: + - 7 + + galaxy_tags: + - openstack + +dependencies: [] diff --git a/roles/os_config/tasks/main.yml b/roles/os_config/tasks/main.yml new file mode 100644 index 0000000..869f23b --- /dev/null +++ b/roles/os_config/tasks/main.yml @@ -0,0 +1,15 @@ +--- +- name: Create OpenStack config dir + file: + dest: "{{ os_config_destination }}" + owner: "{{ os_config_owner }}" + group: "{{ os_config_group }}" + state: directory + +- name: Write OpenStack cloud config + copy: + content: "{{ os_config_content }}" + dest: "{{ os_config_destination }}/clouds.yaml" + owner: "{{ os_config_owner }}" + group: "{{ os_config_group }}" + mode: 0660 diff --git a/roles/os_config/tests/inventory b/roles/os_config/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/roles/os_config/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/roles/os_config/tests/test.yml b/roles/os_config/tests/test.yml new file mode 100644 index 0000000..78d5fc2 --- /dev/null +++ b/roles/os_config/tests/test.yml @@ -0,0 +1,6 @@ +--- +- hosts: localhost + vars: + - ansible_connection: local + roles: + - os-config From 55fa7bfe2c19f1d65969384ee32e6642589554bd Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Fri, 24 Nov 2023 11:26:34 +0000 Subject: [PATCH 2/5] lint: Fix os_config issues --- roles/os_config/defaults/main.yml | 20 ++++++++++---------- roles/os_config/meta/main.yml | 26 -------------------------- roles/os_config/tasks/main.yml | 7 ++++--- roles/os_config/tests/test.yml | 5 +++-- 4 files changed, 17 insertions(+), 41 deletions(-) delete mode 100644 roles/os_config/meta/main.yml diff --git a/roles/os_config/defaults/main.yml b/roles/os_config/defaults/main.yml index 5564aee..a9ab5f5 100644 --- a/roles/os_config/defaults/main.yml +++ b/roles/os_config/defaults/main.yml @@ -1,14 +1,14 @@ --- -os_config_destination: "/home/{{ ansible_user }}/.config/openstack" +os_config_destination: /home/{{ ansible_user }}/.config/openstack os_config_owner: "{{ ansible_user }}" os_config_group: "{{ ansible_user }}" os_config_content: | - --- - clouds: - myprivateclound: - auth: - auth_url: http://openstack.example.com:5000 - project_name: p3 - username: user - password: secretpassword - region: RegionOne + --- + clouds: + myprivateclound: + auth: + auth_url: http://openstack.example.com:5000 + project_name: p3 + username: user + password: secretpassword + region: RegionOne diff --git a/roles/os_config/meta/main.yml b/roles/os_config/meta/main.yml deleted file mode 100644 index 4870ca4..0000000 --- a/roles/os_config/meta/main.yml +++ /dev/null @@ -1,26 +0,0 @@ -galaxy_info: - #role_name: os_config - author: StackHPC Ltd - description: Add OpenStack client configuration. - company: StackHPC Ltd - - issue_tracker_url: https://github.com/stackhpc/ansible-role-os-config/issues - - license: Apache2 - - min_ansible_version: 2.0 - - # If this a Container Enabled role, provide the minimum Ansible Container version. - # min_ansible_container_version: - - #github_branch: - - platforms: - - name: EL - versions: - - 7 - - galaxy_tags: - - openstack - -dependencies: [] diff --git a/roles/os_config/tasks/main.yml b/roles/os_config/tasks/main.yml index 869f23b..09d7f10 100644 --- a/roles/os_config/tasks/main.yml +++ b/roles/os_config/tasks/main.yml @@ -1,15 +1,16 @@ --- - name: Create OpenStack config dir - file: + ansible.builtin.file: dest: "{{ os_config_destination }}" owner: "{{ os_config_owner }}" group: "{{ os_config_group }}" state: directory + mode: "0770" - name: Write OpenStack cloud config - copy: + ansible.builtin.copy: content: "{{ os_config_content }}" dest: "{{ os_config_destination }}/clouds.yaml" owner: "{{ os_config_owner }}" group: "{{ os_config_group }}" - mode: 0660 + mode: "0660" diff --git a/roles/os_config/tests/test.yml b/roles/os_config/tests/test.yml index 78d5fc2..42faa2a 100644 --- a/roles/os_config/tests/test.yml +++ b/roles/os_config/tests/test.yml @@ -1,6 +1,7 @@ --- -- hosts: localhost +- name: Test os_config role + hosts: localhost vars: - ansible_connection: local roles: - - os-config + - stackhpc.openstack.os_config From 0f2bb755bfe7450829a13c2335118893115d66c5 Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Fri, 24 Nov 2023 11:27:15 +0000 Subject: [PATCH 3/5] os_config: Use ansible_facts --- roles/os_config/defaults/main.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/roles/os_config/defaults/main.yml b/roles/os_config/defaults/main.yml index a9ab5f5..80c03c2 100644 --- a/roles/os_config/defaults/main.yml +++ b/roles/os_config/defaults/main.yml @@ -1,7 +1,7 @@ --- -os_config_destination: /home/{{ ansible_user }}/.config/openstack -os_config_owner: "{{ ansible_user }}" -os_config_group: "{{ ansible_user }}" +os_config_destination: /home/{{ ansible_facts.user }}/.config/openstack +os_config_owner: "{{ ansible_facts.user }}" +os_config_group: "{{ ansible_facts.user }}" os_config_content: | --- clouds: From d5fe109e2ac8177e5d12f87c5832364999f2afe1 Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Fri, 24 Nov 2023 11:29:47 +0000 Subject: [PATCH 4/5] os_config: Update README --- roles/os_config/README.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/roles/os_config/README.md b/roles/os_config/README.md index bddd0c5..5712025 100644 --- a/roles/os_config/README.md +++ b/roles/os_config/README.md @@ -1,10 +1,8 @@ -stackhpc.os-config -================== +stackhpc.openstack.os_config +============================ -[![Build Status](https://www.travis-ci.org/stackhpc/ansible-role-os-config.svg?branch=master)](https://www.travis-ci.org/stackhpc/ansible-role-os-config) - -Add openstack client config file to default location of -`/etc/openstack/clouds.yaml` +Add OpenStack client config file to default location of +`~/.config/openstack/clouds.yaml` Requirements ------------ @@ -62,7 +60,7 @@ An easy way to this example is: pip install -U pip pip install -U ansible - ansible-galaxy install stackhpc.os-config + ansible-galaxy install stackhpc.openstack.os_config ansible-playbook -i "localhost," -c local test.yml From b8dbd30e9466133648e9a2e24039a6748b0c0d59 Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Fri, 24 Nov 2023 11:31:59 +0000 Subject: [PATCH 5/5] os_config: Fix test --- roles/os_config/tests/test.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/roles/os_config/tests/test.yml b/roles/os_config/tests/test.yml index 42faa2a..2d4df54 100644 --- a/roles/os_config/tests/test.yml +++ b/roles/os_config/tests/test.yml @@ -1,7 +1,6 @@ --- - name: Test os_config role hosts: localhost - vars: - - ansible_connection: local + connection: local roles: - stackhpc.openstack.os_config