Use openstack ansible collection instead of os_ modules

Replace all usages of os_ modules by openstack.cloud modules.
Change-Id: Id42f15d4e28966d0a0702f3f4566d33f9d129154
This commit is contained in:
Sagi Shnaidman 2021-04-01 15:44:45 +03:00 committed by Shnaidman Sagi
parent 8f9a141bf9
commit c800bcb3b2
15 changed files with 23 additions and 61 deletions

View File

@ -31,7 +31,7 @@
- stack_name
tasks:
- name: Delete heat stack
os_stack:
openstack.cloud.stack:
name: "{{ stack_name }}"
state: absent
register: stack_delete

View File

@ -74,7 +74,7 @@
register: ssh_keygen_results
- name: Create keypair
os_keypair:
openstack.cloud.keypair:
state: present
name: "{{ amp_ssh_key_name }}"
public_key_file: "{{ amp_ssh_key_path_final }}"

View File

@ -33,6 +33,7 @@
- python3-openstackclient
- python3-keystoneclient
- ansible
- ansible-collections-openstack
- name: Build keystone container
shell: "podman build -t keystone-img -f {{ playbook_dir }}/Dockerfile.keystone ."

View File

@ -15,7 +15,7 @@
# under the License.
- name: Create default domain
os_keystone_domain:
openstack.cloud.identity_domain:
cloud: "{{ tripleo_keystone_resources_cloud_name }}"
name: default
@ -27,12 +27,12 @@
- service
- name: Create admin role
os_keystone_role:
openstack.cloud.identity_role:
cloud: "{{ tripleo_keystone_resources_cloud_name }}"
name: admin
- name: Create _member_ role
os_keystone_role:
openstack.cloud.identity_role:
cloud: "{{ tripleo_keystone_resources_cloud_name }}"
name: _member_
when:
@ -40,7 +40,7 @@
- name: Create admin user
no_log: "{{ tripleo_keystone_resources_hide_sensitive_logs | bool }}"
os_user:
openstack.cloud.identity_user:
cloud: "{{ tripleo_keystone_resources_cloud_name }}"
name: admin
password: "{{ tripleo_keystone_resources_admin_password }}"
@ -49,14 +49,14 @@
domain: default
- name: Assign admin role to admin project for admin user
os_user_role:
openstack.cloud.role_assignment:
cloud: "{{ tripleo_keystone_resources_cloud_name }}"
user: admin
project: admin
role: admin
- name: Assign _member_ role to admin project for admin user
os_user_role:
openstack.cloud.role_assignment:
cloud: "{{ tripleo_keystone_resources_cloud_name }}"
user: admin
project: admin
@ -65,13 +65,13 @@
- keystone_enable_member | default(tripleo_keystone_resources_member_role_enabled)
- name: Create identity service
os_keystone_service:
openstack.cloud.catalog_service:
cloud: "{{ tripleo_keystone_resources_cloud_name }}"
name: keystone
service_type: identity
- name: Create identity public endpoint
os_keystone_endpoint:
openstack.cloud.endpoint:
cloud: "{{ tripleo_keystone_resources_cloud_name }}"
service: keystone
url: "{{ tripleo_keystone_resources_public_endpoint }}"
@ -79,7 +79,7 @@
region: "{{ tripleo_keystone_resources_region }}"
- name: Create identity internal endpoint
os_keystone_endpoint:
openstack.cloud.endpoint:
cloud: "{{ tripleo_keystone_resources_cloud_name }}"
service: keystone
url: "{{ tripleo_keystone_resources_internal_endpoint }}"
@ -87,7 +87,7 @@
region: "{{ tripleo_keystone_resources_region }}"
- name: Create identity admin endpoint
os_keystone_endpoint:
openstack.cloud.endpoint:
cloud: "{{ tripleo_keystone_resources_cloud_name }}"
service: keystone
url: "{{ tripleo_keystone_resources_admin_endpoint }}"

View File

@ -15,7 +15,7 @@
# under the License.
- name: Async creation of Keystone domains
os_keystone_domain:
openstack.cloud.identity_domain:
cloud: "{{ tripleo_keystone_resources_cloud_name }}"
name: "{{ tripleo_keystone_resources_domain }}"
state: present

View File

@ -15,7 +15,7 @@
# under the License.
- name: "Async creation of Keystone {{ keystone_endpoint_type }} endpoint"
os_keystone_endpoint:
openstack.cloud.endpoint:
cloud: "{{ tripleo_keystone_resources_cloud_name }}"
service: "{{ tripleo_keystone_resources_data.key }}"
url: "{{ tripleo_keystone_resources_data['value']['endpoints'][keystone_endpoint_type] }}"

View File

@ -15,7 +15,7 @@
# under the License.
- name: Collect OpenStack Keystone domains infos
os_keystone_domain_info:
openstack.cloud.identity_domain_info:
cloud: "{{ tripleo_keystone_resources_cloud_name }}"
register: domain_result

View File

@ -1,24 +0,0 @@
---
# Copyright 2019 Red Hat, Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
- name: Collect OpenStack Keystone domains facts
os_keystone_domain_facts:
cloud: "{{ tripleo_keystone_resources_cloud_name }}"
register: tripleo_domains_facts
- name: Create openstack_domains fact
set_fact:
openstack_domains: "{{ tripleo_domains_facts['ansible_facts']['openstack_domains'] }}"

View File

@ -47,23 +47,8 @@
loop_control:
loop_var: batched_tripleo_keystone_resources_domains
# We need to gather domains so later we can convert a domain name into a domain ID.
# This is needed because os_user_role doesn't do the conversion yet in the version
# of Ansible that we use. This block will disappear once we use the new modules
# from OpenStack collections.
# In recents version of Ansible, this module was renamed to os_keystone_domain_info.
# Which is why we don't use the same module to gather domains infos.
- name: Gather all OpenStack domains for Ansible < 2.9.0
include_tasks: gather_domains_old.yml
# See https://github.com/ansible/ansible/commit/c91929b2b302b37af22d785641a7fe704003662a
when:
- ansible_version.full is version_compare('2.9.0', '<')
- name: Gather all OpenStack domains for Ansible >= 2.9.0
include_tasks: gather_domains_new.yml
# See https://github.com/ansible/ansible/commit/c91929b2b302b37af22d785641a7fe704003662a
when:
- ansible_version.full is version_compare('2.9.0', '>=')
include_tasks: gather_domains.yml
- name: Create Keystone Services
include_tasks: services.yml

View File

@ -15,7 +15,7 @@
# under the License.
- name: Async creation of Keystone project
os_project:
openstack.cloud.project:
cloud: "{{ tripleo_keystone_resources_cloud_name }}"
name: "{{ tripleo_keystone_resources_project }}"
domain_id: default

View File

@ -15,7 +15,7 @@
# under the License.
- name: Async creation of Keystone role
os_keystone_role:
openstack.cloud.identity_role:
cloud: "{{ tripleo_keystone_resources_cloud_name }}"
name: "{{ tripleo_keystone_resources_role }}"
state: present

View File

@ -15,7 +15,7 @@
# under the License.
- name: Async creation of Keystone service
os_keystone_service:
openstack.cloud.catalog_service:
cloud: "{{ tripleo_keystone_resources_cloud_name }}"
name: "{{ tripleo_keystone_resources_data.key }}"
service_type: "{{ tripleo_keystone_resources_data.value.service }}"

View File

@ -15,7 +15,7 @@
# under the License.
- name: "Async assignment of Keystone user to roles"
os_user_role:
openstack.cloud.role_assignment:
cloud: "{{ tripleo_keystone_resources_cloud_name }}"
user: "{{ lookup('dict', tripleo_keystone_resources_data_user).key }}"
project: "{{ lookup('dict', tripleo_keystone_resources_data_user).value.project | default(omit) }}"

View File

@ -16,7 +16,7 @@
- name: "Async assignment of Keystone user per role"
include_tasks: user_per_role.yml
# This loop is required as a user can have multiple roles but the os_user_role doesn't handle it.
# This loop is required as a user can have multiple roles but the role_assignment module doesn't handle it.
loop: "{{ batched_tripleo_keystone_resources_roles_data.value | batch(tripleo_keystone_resources_batch) | list }}"
loop_control:
loop_var: tripleo_keystone_resources_data_users

View File

@ -17,7 +17,7 @@
- name: "Async creation of Keystone user"
# needed because it'll throw a warning if you have update_password without it
no_log: "{{ tripleo_keystone_resources_hide_sensitive_logs | bool }}"
os_user:
openstack.cloud.identity_user:
cloud: "{{ tripleo_keystone_resources_cloud_name }}"
name: "{{ lookup('dict', tripleo_keystone_resources_data).value.name | default(lookup('dict', tripleo_keystone_resources_data).key) }}"
password: "{{ lookup('dict', tripleo_keystone_resources_data).value.password }}"