Remove the ceph-ansible roles
ceph-ansible is not used anymore in master and both ceph deployment and day2 ops are managed by the new cephadm tool. This change aligns the tripleo-ansible tree to make sure only cephadm is used to deploy Ceph (see [1]). [1] https://blueprints.launchpad.net/tripleo/+spec/tripleo-ceph Change-Id: I2ce4f0068aac3b2ab4712e22c433b97fad208655
This commit is contained in:
parent
ccdb435c45
commit
69dcd53747
|
@ -1,103 +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.
|
|
||||||
|
|
||||||
# todo(fultonj): evolve this to derive more of these values from facts
|
|
||||||
|
|
||||||
ceph_ansible_group_vars_all:
|
|
||||||
ceph_container_image: ceph/daemon
|
|
||||||
ceph_container_image_tag: v4.0.1-stable-4.0-nautilus-centos-7-x86_64
|
|
||||||
ceph_container_registry: 192.168.24.1:8787
|
|
||||||
ceph_origin: distro
|
|
||||||
ceph_stable: true
|
|
||||||
cluster: ceph
|
|
||||||
cluster_network: 192.168.24.0/24
|
|
||||||
containerized_deployment: true
|
|
||||||
configure_firewall: false
|
|
||||||
fsid: b8df929e-7c29-11e9-b1bd-244253215215
|
|
||||||
generate_fsid: false
|
|
||||||
ip_version: ipv4
|
|
||||||
monitor_address_block: 192.168.24.0/24
|
|
||||||
ntp_service_enabled: false
|
|
||||||
openstack_config: true
|
|
||||||
pools: []
|
|
||||||
public_network: 192.168.24.0/24
|
|
||||||
user_config: true
|
|
||||||
dashboard_enabled: false
|
|
||||||
blacklisted_hostnames: []
|
|
||||||
ceph_ansible_extra_vars:
|
|
||||||
ireallymeanit: 'yes'
|
|
||||||
container_binary: 'podman'
|
|
||||||
uuid_content: {}
|
|
||||||
ceph_ansible_playbook_verbosity: 3
|
|
||||||
ceph_ansible_playbooks_param: ['default']
|
|
||||||
ceph_ansible_skip_tags: 'package-install,with_pkg'
|
|
||||||
ceph_ansible_environment_variables: []
|
|
||||||
ceph_ansible_inherits_calling_ansible_environment: false
|
|
||||||
|
|
||||||
ceph_pools:
|
|
||||||
gnocchi_pool:
|
|
||||||
name: 'metrics'
|
|
||||||
enabled: true
|
|
||||||
nova_pool:
|
|
||||||
name: 'vms'
|
|
||||||
enabled: true
|
|
||||||
glance_pool:
|
|
||||||
name: 'images'
|
|
||||||
enabled: true
|
|
||||||
cinder_pool:
|
|
||||||
name: 'volumes'
|
|
||||||
enabled: true
|
|
||||||
cinder_extra_pools: [altrbd, pool2, pool3]
|
|
||||||
cinder_backup_pool:
|
|
||||||
name: 'backups'
|
|
||||||
enabled: false
|
|
||||||
extra_pools:
|
|
||||||
- application: rbd
|
|
||||||
name: altrbd
|
|
||||||
pg_num: 1
|
|
||||||
rule_name: replicated_rule
|
|
||||||
pg_num: 32
|
|
||||||
|
|
||||||
manila_pools:
|
|
||||||
data: 'manila_data'
|
|
||||||
data_pg_num: 16
|
|
||||||
metadata: 'manila_metadata'
|
|
||||||
metadata_pg_num: 16
|
|
||||||
|
|
||||||
ceph_keys:
|
|
||||||
openstack_client:
|
|
||||||
name: "openstack"
|
|
||||||
key: "AQC+vYNXgDAgAhAAc8UoYt+OTz5uhV7ItLdwUw=="
|
|
||||||
manila:
|
|
||||||
name: "manila"
|
|
||||||
key: "AQDVdVZeAAAAABAAhhhLNK3G8Bb8kShtnPBXnA=="
|
|
||||||
radosgw:
|
|
||||||
name: "radosgw"
|
|
||||||
key: "AQDVdVZeAAAAABAAzv4Bo8gRRyuOvs2MaLtnYQ=="
|
|
||||||
extra_keys:
|
|
||||||
- caps:
|
|
||||||
mgr: allow *
|
|
||||||
mon: profile rbd
|
|
||||||
osd: profile rbd pool=images
|
|
||||||
key: AQBRgQ9eAAAAABAAv84zEilJYZPNuJ0Iwn9Ndg==
|
|
||||||
mode: '0600'
|
|
||||||
name: client.glance
|
|
||||||
|
|
||||||
ceph_default_overrides:
|
|
||||||
global:
|
|
||||||
osd_pool_default_pg_num: 32
|
|
||||||
osd_pool_default_pgp_num: 32
|
|
||||||
osd_pool_default_size: 1
|
|
|
@ -1,37 +0,0 @@
|
||||||
# Molecule managed
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
|
|
||||||
{% if item.registry is defined %}
|
|
||||||
FROM {{ item.registry.url }}/{{ item.image }}
|
|
||||||
{% else %}
|
|
||||||
FROM {{ item.image }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get install -y python sudo bash ca-certificates && apt-get clean; \
|
|
||||||
elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install sudo python*-devel python*-dnf bash {{ item.pkg_extras | default('') }} && dnf clean all; \
|
|
||||||
elif [ $(command -v yum) ]; then yum makecache fast && yum install -y python sudo yum-plugin-ovl python-setuptools bash {{ item.pkg_extras | default('') }} && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \
|
|
||||||
elif [ $(command -v zypper) ]; then zypper refresh && zypper install -y python sudo bash python-xml {{ item.pkg_extras | default('') }} && zypper clean -a; \
|
|
||||||
elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates {{ item.pkg_extras | default('') }}; \
|
|
||||||
elif [ $(command -v xbps-install) ]; then xbps-install -Syu && xbps-install -y python sudo bash ca-certificates {{ item.pkg_extras | default('') }} && xbps-remove -O; fi
|
|
||||||
|
|
||||||
{% for pkg in item.easy_install | default([]) %}
|
|
||||||
# install pip for centos where there is no python-pip rpm in default repos
|
|
||||||
RUN easy_install {{ pkg }}
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
|
|
||||||
CMD ["sh", "-c", "while true; do sleep 10000; done"]
|
|
|
@ -1,21 +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: Converge
|
|
||||||
hosts: all
|
|
||||||
roles:
|
|
||||||
- role: "tripleo_ceph_common"
|
|
|
@ -1,51 +0,0 @@
|
||||||
---
|
|
||||||
driver:
|
|
||||||
name: podman
|
|
||||||
|
|
||||||
log: true
|
|
||||||
|
|
||||||
platforms:
|
|
||||||
- name: ubi8
|
|
||||||
hostname: ubi8
|
|
||||||
image: ubi8/ubi-init
|
|
||||||
registry:
|
|
||||||
url: registry.access.redhat.com
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
pkg_extras: python*setuptools
|
|
||||||
volumes:
|
|
||||||
- /etc/ci/mirror_info.sh:/etc/ci/mirror_info.sh:ro
|
|
||||||
- /etc/pki/rpm-gpg:/etc/pki/rpm-gpg
|
|
||||||
- /opt/yum.repos.d:/etc/yum.repos.d:rw
|
|
||||||
- /etc/dnf/vars:/etc/dnf/vars
|
|
||||||
privileged: true
|
|
||||||
environment: &env
|
|
||||||
http_proxy: "{{ lookup('env', 'http_proxy') }}"
|
|
||||||
https_proxy: "{{ lookup('env', 'https_proxy') }}"
|
|
||||||
ulimits: &ulimit
|
|
||||||
- host
|
|
||||||
|
|
||||||
provisioner:
|
|
||||||
name: ansible
|
|
||||||
inventory:
|
|
||||||
hosts:
|
|
||||||
all:
|
|
||||||
hosts:
|
|
||||||
ubi8:
|
|
||||||
ansible_python_interpreter: /usr/bin/python3
|
|
||||||
vars:
|
|
||||||
ansible_user: root
|
|
||||||
log: true
|
|
||||||
env:
|
|
||||||
ANSIBLE_STDOUT_CALLBACK: yaml
|
|
||||||
|
|
||||||
scenario:
|
|
||||||
test_sequence:
|
|
||||||
- destroy
|
|
||||||
- create
|
|
||||||
- prepare
|
|
||||||
- converge
|
|
||||||
- verify
|
|
||||||
- destroy
|
|
||||||
|
|
||||||
verifier:
|
|
||||||
name: testinfra
|
|
|
@ -1,21 +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: Prepare
|
|
||||||
hosts: all
|
|
||||||
roles:
|
|
||||||
- role: test_deps
|
|
|
@ -1,66 +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: set basic user fact
|
|
||||||
set_fact:
|
|
||||||
ansible_user: "{{ lookup('env', 'USER') }}"
|
|
||||||
when:
|
|
||||||
- ansible_user is undefined
|
|
||||||
|
|
||||||
- name: set basic home fact
|
|
||||||
set_fact:
|
|
||||||
ansible_user_dir: "{{ lookup('env', 'HOME') }}"
|
|
||||||
when:
|
|
||||||
- ansible_user_dir is undefined
|
|
||||||
|
|
||||||
- name: set calling_ansible_environment_variables fact
|
|
||||||
set_fact:
|
|
||||||
calling_ansible_environment_variables: []
|
|
||||||
when:
|
|
||||||
- (not ceph_ansible_inherits_calling_ansible_environment | default(true)) | bool
|
|
||||||
|
|
||||||
- name: Local environment inherit
|
|
||||||
when:
|
|
||||||
- (ceph_ansible_inherits_calling_ansible_environment | default(false)) | bool
|
|
||||||
block:
|
|
||||||
- name: get all ansible environment variables
|
|
||||||
shell: "env | grep ^ANSIBLE_ | grep -v CALLBACK"
|
|
||||||
register: env_shell_output
|
|
||||||
failed_when: false
|
|
||||||
delegate_to: localhost
|
|
||||||
connection: local
|
|
||||||
run_once: true
|
|
||||||
|
|
||||||
- name: set calling_ansible_environment_variables
|
|
||||||
run_once: true
|
|
||||||
set_fact:
|
|
||||||
calling_ansible_environment_variables: "{{ env_shell_output.stdout_lines }}"
|
|
||||||
when:
|
|
||||||
- env_shell_output.rc is defined
|
|
||||||
- env_shell_output.rc == 0
|
|
||||||
- env_shell_output.stdout_lines is defined
|
|
||||||
- (env_shell_output.stdout_lines|length) > 0
|
|
||||||
|
|
||||||
- name: Set common fact
|
|
||||||
set_fact:
|
|
||||||
ceph_common_done: true
|
|
||||||
|
|
||||||
- name: set ceph_ansible_limit to ansible_limit, only if ansible_limit defined
|
|
||||||
set_fact:
|
|
||||||
ceph_ansible_limit: "{{ ansible_limit }}"
|
|
||||||
when:
|
|
||||||
- (ceph_ansible_limit is not defined) or (ceph_ansible_limit|length == 0)
|
|
||||||
- (ansible_limit is defined) and (ansible_limit|length > 0)
|
|
|
@ -1,20 +0,0 @@
|
||||||
---
|
|
||||||
# Copyright 2020 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.
|
|
||||||
|
|
||||||
|
|
||||||
# All variables intended for modification should be placed in this file.
|
|
||||||
tripleo_ceph_run_ansible_hide_sensitive_logs: "{{ hide_sensitive_logs | default(true) }}"
|
|
||||||
tripleo_ceph_run_ansible_debug: "{{ ((ansible_verbosity | int) >= 2) | bool }}"
|
|
|
@ -1,37 +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.
|
|
||||||
|
|
||||||
|
|
||||||
galaxy_info:
|
|
||||||
author: OpenStack
|
|
||||||
description: TripleO OpenStack Role -- tripleo_ceph_run_ansible
|
|
||||||
company: Red Hat
|
|
||||||
license: Apache-2.0
|
|
||||||
min_ansible_version: 2.7
|
|
||||||
#
|
|
||||||
# Provide a list of supported platforms, and for each platform a list of versions.
|
|
||||||
# If you don't wish to enumerate all versions for a particular platform, use 'all'.
|
|
||||||
# To view available platforms and versions (or releases), visit:
|
|
||||||
# https://galaxy.ansible.com/api/v1/platforms/
|
|
||||||
#
|
|
||||||
platforms:
|
|
||||||
- name: CentOS
|
|
||||||
versions:
|
|
||||||
- 7
|
|
||||||
- 8
|
|
||||||
|
|
||||||
galaxy_tags:
|
|
||||||
- tripleo
|
|
|
@ -1,37 +0,0 @@
|
||||||
# Molecule managed
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
|
|
||||||
{% if item.registry is defined %}
|
|
||||||
FROM {{ item.registry.url }}/{{ item.image }}
|
|
||||||
{% else %}
|
|
||||||
FROM {{ item.image }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get install -y python sudo bash ca-certificates && apt-get clean; \
|
|
||||||
elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install sudo python*-devel python*-dnf bash {{ item.pkg_extras | default('') }} && dnf clean all; \
|
|
||||||
elif [ $(command -v yum) ]; then yum makecache fast && yum install -y python sudo yum-plugin-ovl python-setuptools bash {{ item.pkg_extras | default('') }} && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \
|
|
||||||
elif [ $(command -v zypper) ]; then zypper refresh && zypper install -y python sudo bash python-xml {{ item.pkg_extras | default('') }} && zypper clean -a; \
|
|
||||||
elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates {{ item.pkg_extras | default('') }}; \
|
|
||||||
elif [ $(command -v xbps-install) ]; then xbps-install -Syu && xbps-install -y python sudo bash ca-certificates {{ item.pkg_extras | default('') }} && xbps-remove -O; fi
|
|
||||||
|
|
||||||
{% for pkg in item.easy_install | default([]) %}
|
|
||||||
# install pip for centos where there is no python-pip rpm in default repos
|
|
||||||
RUN easy_install {{ pkg }}
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
|
|
||||||
CMD ["sh", "-c", "while true; do sleep 10000; done"]
|
|
|
@ -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: Converge
|
|
||||||
hosts: all
|
|
||||||
roles:
|
|
||||||
- role: "tripleo_ceph_common"
|
|
||||||
- role: "tripleo_ceph_work_dir"
|
|
||||||
- role: "tripleo_ceph_uuid"
|
|
||||||
- role: "tripleo_ceph_run_ansible"
|
|
|
@ -1,51 +0,0 @@
|
||||||
---
|
|
||||||
driver:
|
|
||||||
name: podman
|
|
||||||
|
|
||||||
log: true
|
|
||||||
|
|
||||||
platforms:
|
|
||||||
- name: ubi8
|
|
||||||
hostname: ubi8
|
|
||||||
image: ubi8/ubi-init
|
|
||||||
registry:
|
|
||||||
url: registry.access.redhat.com
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
pkg_extras: python*setuptools
|
|
||||||
volumes:
|
|
||||||
- /etc/ci/mirror_info.sh:/etc/ci/mirror_info.sh:ro
|
|
||||||
- /etc/pki/rpm-gpg:/etc/pki/rpm-gpg
|
|
||||||
- /opt/yum.repos.d:/etc/yum.repos.d:rw
|
|
||||||
- /etc/dnf/vars:/etc/dnf/vars
|
|
||||||
privileged: true
|
|
||||||
environment: &env
|
|
||||||
http_proxy: "{{ lookup('env', 'http_proxy') }}"
|
|
||||||
https_proxy: "{{ lookup('env', 'https_proxy') }}"
|
|
||||||
ulimits: &ulimit
|
|
||||||
- host
|
|
||||||
|
|
||||||
provisioner:
|
|
||||||
name: ansible
|
|
||||||
inventory:
|
|
||||||
hosts:
|
|
||||||
all:
|
|
||||||
hosts:
|
|
||||||
ubi8:
|
|
||||||
ansible_python_interpreter: /usr/bin/python3
|
|
||||||
vars:
|
|
||||||
ansible_user: root
|
|
||||||
log: true
|
|
||||||
env:
|
|
||||||
ANSIBLE_STDOUT_CALLBACK: yaml
|
|
||||||
|
|
||||||
scenario:
|
|
||||||
test_sequence:
|
|
||||||
- destroy
|
|
||||||
- create
|
|
||||||
- prepare
|
|
||||||
- converge
|
|
||||||
- verify
|
|
||||||
- destroy
|
|
||||||
|
|
||||||
verifier:
|
|
||||||
name: testinfra
|
|
|
@ -1,21 +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: Prepare
|
|
||||||
hosts: all
|
|
||||||
roles:
|
|
||||||
- role: test_deps
|
|
|
@ -1,65 +0,0 @@
|
||||||
---
|
|
||||||
# Copyright 2020 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: genereate create_ceph_ansible_remote_tmp playbook
|
|
||||||
copy:
|
|
||||||
dest: "{{ playbook_dir }}/ceph-ansible/create_ceph_ansible_remote_tmp.yml"
|
|
||||||
content: |
|
|
||||||
- hosts: all
|
|
||||||
gather_facts: no
|
|
||||||
tasks:
|
|
||||||
# Avoiding the following by creating directory owned by user who will
|
|
||||||
# SSH into nodes (not root). When root needs to write to this directory
|
|
||||||
# it will not have permission problems by definition. As per ansible:
|
|
||||||
# """
|
|
||||||
# Module remote_tmp /tmp/ceph_ansible_tmp did not exist and was created
|
|
||||||
# with a mode of 0700, this may cause issues when running as another user.
|
|
||||||
# To avoid this, create the remote_tmp dir with the correct permissions
|
|
||||||
# manually.
|
|
||||||
# """
|
|
||||||
- name: create ceph_ansible_remote_tmp on all nodes with necessary ownership
|
|
||||||
become: true
|
|
||||||
file:
|
|
||||||
path: "{{ ceph_ansible_remote_tmp }}"
|
|
||||||
owner: "{{ lookup('env','ANSIBLE_REMOTE_USER') | default(ansible_user, true) }}"
|
|
||||||
group: "{{ lookup('env','ANSIBLE_REMOTE_USER') | default(ansible_user, true) }}"
|
|
||||||
mode: "700"
|
|
||||||
state: directory
|
|
||||||
|
|
||||||
- name: build create_ceph_ansible_remote_tmp command as list
|
|
||||||
set_fact:
|
|
||||||
create_ceph_ansible_remote_tmp_list:
|
|
||||||
- ANSIBLE_LOG_PATH="{{ playbook_dir }}/ceph-ansible/create_ceph_ansible_remote_tmp.log"
|
|
||||||
- ANSIBLE_SSH_CONTROL_PATH_DIR="/tmp/ceph_ansible_control_path"
|
|
||||||
- ANSIBLE_CONFIG=/usr/share/ceph-ansible/ansible.cfg
|
|
||||||
- ANSIBLE_REMOTE_TEMP=/tmp/create_ceph_ansible_remote_tmp
|
|
||||||
- "{{ calling_ansible_environment_variables|join(' ') }}"
|
|
||||||
- "{{ ceph_ansible_environment_variables|join(' ') }}"
|
|
||||||
- ansible-playbook
|
|
||||||
- '{% if ceph_ansible_private_key_file is defined %}--private-key {{ ceph_ansible_private_key_file }}{% endif %}'
|
|
||||||
- '-i'
|
|
||||||
- '{{ playbook_dir }}/ceph-ansible/inventory.yml'
|
|
||||||
- '{% if ansible_python_interpreter is defined %}-e ansible_python_interpreter={{ ansible_python_interpreter }}{% endif %}'
|
|
||||||
- "{{ playbook_dir }}/ceph-ansible/create_ceph_ansible_remote_tmp.yml"
|
|
||||||
- '{% if ceph_ansible_limit is defined and ceph_ansible_limit|length > 0 %}--limit {{ ceph_ansible_limit }}{% endif %}'
|
|
||||||
ceph_ansible_remote_tmp: '/tmp/ceph_ansible_tmp'
|
|
||||||
|
|
||||||
- name: run create_ceph_ansible_remote_tmp command
|
|
||||||
# needs become to be able to read the ssh private key
|
|
||||||
become: true
|
|
||||||
shell: "{{ create_ceph_ansible_remote_tmp_list|join(' ') }}"
|
|
||||||
tags:
|
|
||||||
- run_ceph_ansible
|
|
|
@ -1,159 +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: set ceph-ansible playbook list
|
|
||||||
set_fact:
|
|
||||||
ceph_ansible_playbooks: >
|
|
||||||
{%- if ceph_ansible_playbooks_param != ['default'] -%}
|
|
||||||
{{ ceph_ansible_playbooks_param }}
|
|
||||||
{%- else -%}
|
|
||||||
{{ ceph_ansible_playbooks_default|default(['/usr/share/ceph-ansible/site-container.yml.sample']) }}
|
|
||||||
{%- endif -%}
|
|
||||||
|
|
||||||
- import_tasks: create_ceph_ansible_remote_tmp.yml
|
|
||||||
vars:
|
|
||||||
ceph_ansible_remote_tmp: '/tmp/ceph_ansible_tmp'
|
|
||||||
|
|
||||||
- name: set ceph-ansible command list
|
|
||||||
set_fact:
|
|
||||||
ceph_ansible_command_list:
|
|
||||||
- ANSIBLE_ACTION_PLUGINS=/usr/share/ceph-ansible/plugins/actions/
|
|
||||||
- ANSIBLE_CALLBACK_PLUGINS=/usr/share/ceph-ansible/plugins/callback/
|
|
||||||
- ANSIBLE_FILTER_PLUGINS=/usr/share/ceph-ansible/plugins/filter/
|
|
||||||
- ANSIBLE_ROLES_PATH=/usr/share/ceph-ansible/roles/
|
|
||||||
- ANSIBLE_LOG_PATH="{{ playbook_dir }}/ceph-ansible/ceph_ansible_command.log"
|
|
||||||
- ANSIBLE_SSH_CONTROL_PATH_DIR="/tmp/ceph_ansible_control_path"
|
|
||||||
- ANSIBLE_LIBRARY=/usr/share/ceph-ansible/library/
|
|
||||||
- ANSIBLE_CONFIG=/usr/share/ceph-ansible/ansible.cfg
|
|
||||||
- ANSIBLE_REMOTE_TEMP="{{ ceph_ansible_remote_tmp }}"
|
|
||||||
- ANSIBLE_FORKS=25
|
|
||||||
- ANSIBLE_GATHER_TIMEOUT=60
|
|
||||||
- ANSIBLE_CALLBACK_WHITELIST=profile_tasks
|
|
||||||
- ANSIBLE_STDOUT_CALLBACK=default
|
|
||||||
- "{{ calling_ansible_environment_variables|join(' ') }}"
|
|
||||||
- "{{ ceph_ansible_environment_variables|join(' ') }}"
|
|
||||||
# NOTE(mwhahaha): we need to force this for now until ansible addresses fact stuff
|
|
||||||
- ANSIBLE_INJECT_FACT_VARS=True
|
|
||||||
- ANSIBLE_GATHER_SUBSET="all"
|
|
||||||
- ANSIBLE_CACHE_PLUGIN="memory"
|
|
||||||
- ansible-playbook
|
|
||||||
- '{% if ceph_ansible_private_key_file is defined %}--private-key {{ ceph_ansible_private_key_file }}{% endif %}'
|
|
||||||
- '{% if ansible_python_interpreter is defined %}-e ansible_python_interpreter={{ ansible_python_interpreter }}{% endif %}'
|
|
||||||
- '-{%- for number in range(0, ceph_ansible_playbook_verbosity) -%}v{% endfor %}'
|
|
||||||
- '{% if ceph_ansible_skip_tags is defined and ceph_ansible_skip_tags|length > 0%}--skip-tags {{ ceph_ansible_skip_tags }}{% endif %}'
|
|
||||||
- '--extra-vars'
|
|
||||||
- '@{{ playbook_dir }}/ceph-ansible/extra_vars.yml'
|
|
||||||
- '{% if ceph_ansible_limit is defined and ceph_ansible_limit|length > 0 %}--limit {{ ceph_ansible_limit }}{% endif %}'
|
|
||||||
|
|
||||||
- name: try to find ANSIBLE_LOG_PATH in ceph_ansible_environment_variables
|
|
||||||
set_fact:
|
|
||||||
calling_ansible_log_path: "{{ item | regex_replace('ANSIBLE_LOG_PATH=', '') }}"
|
|
||||||
when: item is match("ANSIBLE_LOG_PATH.*")
|
|
||||||
loop: "{{ ceph_ansible_environment_variables }}"
|
|
||||||
|
|
||||||
- name: do we need to keep looking for the ANSIBLE_LOG_PATH?
|
|
||||||
when: calling_ansible_log_path is undefined
|
|
||||||
block:
|
|
||||||
- name: try to find ANSIBLE_LOG_PATH in calling_ansible_environment_variables
|
|
||||||
set_fact:
|
|
||||||
calling_ansible_log_path: "{{ item | regex_replace('ANSIBLE_LOG_PATH=', '') }}"
|
|
||||||
when: item is match("ANSIBLE_LOG_PATH.*")
|
|
||||||
loop: "{{ calling_ansible_environment_variables }}"
|
|
||||||
- name: Set ANSIBLE_LOG_PATH to default
|
|
||||||
when: calling_ansible_log_path is undefined
|
|
||||||
set_fact:
|
|
||||||
calling_ansible_log_path: "{{ playbook_dir }}/ceph-ansible/ceph_ansible_command.log"
|
|
||||||
|
|
||||||
- name: save ceph-ansible playbook command(s) to shell script
|
|
||||||
copy:
|
|
||||||
dest: "{{ playbook_dir }}/ceph-ansible/ceph_ansible_command.sh"
|
|
||||||
mode: '0755'
|
|
||||||
content: |
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -e
|
|
||||||
echo "Running $0" >> {{ calling_ansible_log_path }}
|
|
||||||
{% set inv = "-i "+ playbook_dir +"/ceph-ansible/inventory.yml" %}
|
|
||||||
{% for playbook in ceph_ansible_playbooks %}
|
|
||||||
{{ ceph_ansible_command_list|join(' ') }} {{ inv }} {{ playbook }} 2>&1
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
- when:
|
|
||||||
- ceph_external_multi_config is defined
|
|
||||||
- (ceph_external_multi_config|length) > 0
|
|
||||||
block:
|
|
||||||
- name: set default facts for ceph_scripts list
|
|
||||||
set_fact:
|
|
||||||
ceph_prefix: "{{ playbook_dir + '/ceph-ansible/external_' }}"
|
|
||||||
ceph_suffix: '_ceph_ansible_command.sh'
|
|
||||||
ceph_default: "{{ [playbook_dir + '/ceph-ansible/ceph_ansible_command.sh'] }}"
|
|
||||||
|
|
||||||
- name: save external ceph-ansible playbook command(s) to shell script(s)
|
|
||||||
copy:
|
|
||||||
dest: "{{ ceph_prefix + item + ceph_suffix }}"
|
|
||||||
mode: '0755'
|
|
||||||
content: |
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -e
|
|
||||||
echo "Running $0" >> {{ calling_ansible_log_path }}
|
|
||||||
{% set inv = "-i " + ceph_prefix + "inventory.ini" %}
|
|
||||||
{% set extra = "-e @" + ceph_prefix + item + "_extra_vars.yml" %}
|
|
||||||
{% for playbook in ceph_ansible_playbooks %}
|
|
||||||
{{ ceph_ansible_command_list|join(' ') }} {{ inv }} {{ extra }} {{ playbook }} 2>&1
|
|
||||||
{% endfor %}
|
|
||||||
loop: "{{ ceph_external_multi_config | map(attribute='cluster') | list }}"
|
|
||||||
|
|
||||||
- name: add external ceph-ansible shell script(s) to list of ceph_scripts
|
|
||||||
set_fact:
|
|
||||||
ceph_scripts: "{{ ceph_scripts|default(ceph_default) + [ceph_prefix + item + ceph_suffix] }}"
|
|
||||||
loop: "{{ ceph_external_multi_config | map(attribute='cluster') | list }}"
|
|
||||||
|
|
||||||
- name: "Notify user about upcoming ceph-ansible execution(s)"
|
|
||||||
debug:
|
|
||||||
msg: "Running {{ ceph_scripts|default(['ceph_ansible_command.sh'])|length }} ceph-ansible playbook(s) (immediate log at {{ calling_ansible_log_path }})"
|
|
||||||
|
|
||||||
- name: run ceph-ansible
|
|
||||||
# Needs become to be able to read the ssh private key
|
|
||||||
become: true
|
|
||||||
shell: "{{ item }}"
|
|
||||||
# We want the output chunked into bits to prevent
|
|
||||||
# overflowing Zaqar message size
|
|
||||||
no_log: "{{ not (tripleo_ceph_run_ansible_debug | bool) }}"
|
|
||||||
failed_when: false
|
|
||||||
register: outputs
|
|
||||||
tags: run_ceph_ansible
|
|
||||||
when: outputs.rc is undefined or outputs.rc == 0
|
|
||||||
loop: "{{ ceph_scripts | default([playbook_dir + '/ceph-ansible/ceph_ansible_command.sh']) }}"
|
|
||||||
|
|
||||||
- name: search output of ceph-ansible run(s) non-zero return codes
|
|
||||||
set_fact:
|
|
||||||
ceph_ansible_std_out_err: "{{ item.stdout_lines | default([]) | union(item.stderr_lines | default([])) }}"
|
|
||||||
no_log: "{{ tripleo_ceph_run_ansible_hide_sensitive_logs | bool }}"
|
|
||||||
when:
|
|
||||||
- item.rc is defined
|
|
||||||
- item.rc != 0
|
|
||||||
loop: "{{ outputs.results }}"
|
|
||||||
tags:
|
|
||||||
- run_ceph_ansible
|
|
||||||
|
|
||||||
- name: print ceph-ansible output in case of failure
|
|
||||||
debug:
|
|
||||||
var: ceph_ansible_std_out_err
|
|
||||||
when:
|
|
||||||
- ceph_ansible_std_out_err is defined
|
|
||||||
failed_when:
|
|
||||||
- ceph_ansible_std_out_err is defined
|
|
||||||
tags:
|
|
||||||
- run_ceph_ansible
|
|
|
@ -1,37 +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.
|
|
||||||
|
|
||||||
|
|
||||||
galaxy_info:
|
|
||||||
author: OpenStack
|
|
||||||
description: TripleO OpenStack Role -- tripleo_ceph_uuid
|
|
||||||
company: Red Hat
|
|
||||||
license: Apache-2.0
|
|
||||||
min_ansible_version: 2.7
|
|
||||||
#
|
|
||||||
# Provide a list of supported platforms, and for each platform a list of versions.
|
|
||||||
# If you don't wish to enumerate all versions for a particular platform, use 'all'.
|
|
||||||
# To view available platforms and versions (or releases), visit:
|
|
||||||
# https://galaxy.ansible.com/api/v1/platforms/
|
|
||||||
#
|
|
||||||
platforms:
|
|
||||||
- name: CentOS
|
|
||||||
versions:
|
|
||||||
- 7
|
|
||||||
- 8
|
|
||||||
|
|
||||||
galaxy_tags:
|
|
||||||
- tripleo
|
|
|
@ -1,37 +0,0 @@
|
||||||
# Molecule managed
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
|
|
||||||
{% if item.registry is defined %}
|
|
||||||
FROM {{ item.registry.url }}/{{ item.image }}
|
|
||||||
{% else %}
|
|
||||||
FROM {{ item.image }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get install -y python sudo bash ca-certificates && apt-get clean; \
|
|
||||||
elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install sudo python*-devel python*-dnf bash {{ item.pkg_extras | default('') }} && dnf clean all; \
|
|
||||||
elif [ $(command -v yum) ]; then yum makecache fast && yum install -y python sudo yum-plugin-ovl python-setuptools bash {{ item.pkg_extras | default('') }} && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \
|
|
||||||
elif [ $(command -v zypper) ]; then zypper refresh && zypper install -y python sudo bash python-xml {{ item.pkg_extras | default('') }} && zypper clean -a; \
|
|
||||||
elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates {{ item.pkg_extras | default('') }}; \
|
|
||||||
elif [ $(command -v xbps-install) ]; then xbps-install -Syu && xbps-install -y python sudo bash ca-certificates {{ item.pkg_extras | default('') }} && xbps-remove -O; fi
|
|
||||||
|
|
||||||
{% for pkg in item.easy_install | default([]) %}
|
|
||||||
# install pip for centos where there is no python-pip rpm in default repos
|
|
||||||
RUN easy_install {{ pkg }}
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
|
|
||||||
CMD ["sh", "-c", "while true; do sleep 10000; done"]
|
|
|
@ -1,21 +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: Converge
|
|
||||||
hosts: all
|
|
||||||
roles:
|
|
||||||
- role: "tripleo_ceph_uuid"
|
|
|
@ -1,51 +0,0 @@
|
||||||
---
|
|
||||||
driver:
|
|
||||||
name: podman
|
|
||||||
|
|
||||||
log: true
|
|
||||||
|
|
||||||
platforms:
|
|
||||||
- name: ubi8
|
|
||||||
hostname: ubi8
|
|
||||||
image: ubi8/ubi-init
|
|
||||||
registry:
|
|
||||||
url: registry.access.redhat.com
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
pkg_extras: python*setuptools
|
|
||||||
volumes:
|
|
||||||
- /etc/ci/mirror_info.sh:/etc/ci/mirror_info.sh:ro
|
|
||||||
- /etc/pki/rpm-gpg:/etc/pki/rpm-gpg
|
|
||||||
- /opt/yum.repos.d:/etc/yum.repos.d:rw
|
|
||||||
- /etc/dnf/vars:/etc/dnf/vars
|
|
||||||
privileged: true
|
|
||||||
environment: &env
|
|
||||||
http_proxy: "{{ lookup('env', 'http_proxy') }}"
|
|
||||||
https_proxy: "{{ lookup('env', 'https_proxy') }}"
|
|
||||||
ulimits: &ulimit
|
|
||||||
- host
|
|
||||||
|
|
||||||
provisioner:
|
|
||||||
name: ansible
|
|
||||||
inventory:
|
|
||||||
hosts:
|
|
||||||
all:
|
|
||||||
hosts:
|
|
||||||
ubi8:
|
|
||||||
ansible_python_interpreter: /usr/bin/python3
|
|
||||||
vars:
|
|
||||||
ansible_user: root
|
|
||||||
log: true
|
|
||||||
env:
|
|
||||||
ANSIBLE_STDOUT_CALLBACK: yaml
|
|
||||||
|
|
||||||
scenario:
|
|
||||||
test_sequence:
|
|
||||||
- destroy
|
|
||||||
- create
|
|
||||||
- prepare
|
|
||||||
- converge
|
|
||||||
- verify
|
|
||||||
- destroy
|
|
||||||
|
|
||||||
verifier:
|
|
||||||
name: testinfra
|
|
|
@ -1,21 +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: Prepare
|
|
||||||
hosts: all
|
|
||||||
roles:
|
|
||||||
- role: test_deps
|
|
|
@ -1,39 +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: build nodes-uuid command as list
|
|
||||||
set_fact:
|
|
||||||
nodes_uuid_list:
|
|
||||||
- ANSIBLE_LOG_PATH="{{ playbook_dir }}/ceph-ansible/nodes_uuid_command.log"
|
|
||||||
- ANSIBLE_SSH_CONTROL_PATH_DIR="/tmp/ceph_ansible_control_path"
|
|
||||||
- ANSIBLE_CONFIG=/usr/share/ceph-ansible/ansible.cfg
|
|
||||||
- ANSIBLE_REMOTE_TEMP=/tmp/nodes_uuid_tmp
|
|
||||||
- "{{ calling_ansible_environment_variables|join(' ') }}"
|
|
||||||
- "{{ ceph_ansible_environment_variables|join(' ') }}"
|
|
||||||
- ansible-playbook
|
|
||||||
- '{% if ceph_ansible_private_key_file is defined %}--private-key {{ ceph_ansible_private_key_file }}{% endif %}'
|
|
||||||
- '-i'
|
|
||||||
- '{{ playbook_dir }}/ceph-ansible/inventory.yml'
|
|
||||||
- '{% if ansible_python_interpreter is defined %}-e ansible_python_interpreter={{ ansible_python_interpreter }}{% endif %}'
|
|
||||||
- '{{ playbook_dir }}/ceph-ansible/nodes_uuid_playbook.yml'
|
|
||||||
- '{% if ceph_ansible_limit is defined and ceph_ansible_limit|length > 0 %}--limit {{ ceph_ansible_limit }}{% endif %}'
|
|
||||||
|
|
||||||
- name: run nodes-uuid command
|
|
||||||
# needs become to be able to read the ssh private key
|
|
||||||
become: true
|
|
||||||
shell: "{{ nodes_uuid_list|join(' ') }}"
|
|
||||||
tags:
|
|
||||||
- run_uuid_ansible
|
|
|
@ -1,22 +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.
|
|
||||||
|
|
||||||
- import_tasks: prepare.yml
|
|
||||||
when:
|
|
||||||
- nodes_data is undefined
|
|
||||||
- import_tasks: gather.yml
|
|
||||||
when:
|
|
||||||
- nodes_uuid_list is undefined
|
|
|
@ -1,48 +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: generate nodes-uuid data file
|
|
||||||
copy:
|
|
||||||
dest: "{{ playbook_dir }}/ceph-ansible/nodes_uuid_data.json"
|
|
||||||
content: "{{ uuid_content }}"
|
|
||||||
|
|
||||||
- name: generate nodes-uuid playbook
|
|
||||||
copy:
|
|
||||||
dest: "{{ playbook_dir }}/ceph-ansible/nodes_uuid_playbook.yml"
|
|
||||||
content: |
|
|
||||||
- hosts: all
|
|
||||||
gather_facts: no
|
|
||||||
tasks:
|
|
||||||
- name: set nodes data
|
|
||||||
set_fact:
|
|
||||||
nodes_data: "{% raw %}{{ lookup('file','./nodes_uuid_data.json') | from_json }}{% endraw %}"
|
|
||||||
- name: register machine id
|
|
||||||
become: true
|
|
||||||
# awk strips unwanted output, see LP bug #1762460
|
|
||||||
shell: >-
|
|
||||||
dmidecode -s system-uuid | \
|
|
||||||
awk 'match($0, /[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}/) { print substr($0, RSTART, RLENGTH) }' | \
|
|
||||||
tr A-F a-f
|
|
||||||
register: machine_uuid
|
|
||||||
# NOTE(tonyb): 0 == no error, 1 == -EPERM or bad data and 2 == Command not found
|
|
||||||
# 1 and 2 aren't great but shouldn't cause the deploy to fail. If we're using
|
|
||||||
# the node specific data we'll fail then. If we aren't then lets keep moving
|
|
||||||
failed_when: machine_uuid.rc not in [0, 1, 2]
|
|
||||||
- name: generate host vars from nodes data
|
|
||||||
copy:
|
|
||||||
content: "{% raw %}{{ nodes_data[machine_uuid.stdout|default('')]|default({})|to_nice_yaml }}{% endraw %}"
|
|
||||||
dest: "{{ playbook_dir }}/ceph-ansible/host_vars/{% raw %}{{ inventory_hostname }}{% endraw %}.yml"
|
|
||||||
delegate_to: localhost
|
|
|
@ -35,8 +35,3 @@ galaxy_info:
|
||||||
|
|
||||||
galaxy_tags:
|
galaxy_tags:
|
||||||
- tripleo
|
- tripleo
|
||||||
|
|
||||||
dependencies:
|
|
||||||
- role: tripleo_ceph_common
|
|
||||||
when:
|
|
||||||
- ceph_common_done is undefined
|
|
||||||
|
|
|
@ -1,48 +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: detect private key file in $HOME/.ssh/id_rsa_tripleo
|
|
||||||
# needs become to be able to read the ssh private key
|
|
||||||
become: true
|
|
||||||
stat:
|
|
||||||
path: "{{ lookup('env','HOME') }}/.ssh/id_rsa_tripleo"
|
|
||||||
register: detect_private_key_file
|
|
||||||
|
|
||||||
- name: set private key file
|
|
||||||
# needs become to be able to read the ssh private key
|
|
||||||
become: true
|
|
||||||
set_fact:
|
|
||||||
ceph_ansible_private_key_file: "{{ lookup('env','HOME') }}/.ssh/id_rsa_tripleo"
|
|
||||||
when:
|
|
||||||
- detect_private_key_file.stat.exists | bool
|
|
||||||
|
|
||||||
- name: Falling back to looking for ssh_private_key in playbook_dir
|
|
||||||
when: ceph_ansible_private_key_file is undefined
|
|
||||||
block:
|
|
||||||
- name: detect private key file in playbook_dir
|
|
||||||
# needs become to be able to read the ssh private key
|
|
||||||
become: true
|
|
||||||
stat:
|
|
||||||
path: "{{ playbook_dir }}/ssh_private_key"
|
|
||||||
register: detect_private_key_file
|
|
||||||
|
|
||||||
- name: set private key file
|
|
||||||
# needs become to be able to read the ssh private key
|
|
||||||
become: true
|
|
||||||
set_fact:
|
|
||||||
ceph_ansible_private_key_file: "{{ playbook_dir }}/ssh_private_key"
|
|
||||||
when:
|
|
||||||
- detect_private_key_file.stat.exists | bool
|
|
|
@ -13,8 +13,3 @@
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
- import_tasks: prepare.yml
|
|
||||||
- import_tasks: get_ssh_private_key.yml
|
|
||||||
when:
|
|
||||||
- ceph_ansible_private_key_file is undefined
|
|
||||||
|
|
|
@ -1,125 +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: create ceph-ansible temp dirs
|
|
||||||
file:
|
|
||||||
path: "{{ item }}"
|
|
||||||
state: directory
|
|
||||||
with_items:
|
|
||||||
- "{{ playbook_dir }}/ceph-ansible"
|
|
||||||
- "{{ playbook_dir }}/ceph-ansible/group_vars"
|
|
||||||
- "{{ playbook_dir }}/ceph-ansible/host_vars"
|
|
||||||
- "{{ playbook_dir }}/ceph-ansible/fetch_dir"
|
|
||||||
|
|
||||||
- name: symbolic link to tripleo inventory from ceph-ansible work directory
|
|
||||||
# If we call ceph-ansible with the same inventory as the calling
|
|
||||||
# playbook, then config-download/groups_vars will be used instead
|
|
||||||
# of config-download/ceph-ansible/group_vars.
|
|
||||||
file:
|
|
||||||
src: "{{ inventory_file }}"
|
|
||||||
dest: "{{ playbook_dir }}/ceph-ansible/inventory.yml"
|
|
||||||
state: link
|
|
||||||
force: true
|
|
||||||
tags:
|
|
||||||
- run_uuid_ansible
|
|
||||||
- run_ceph_ansible
|
|
||||||
|
|
||||||
- name: get the list of enabled services on the overcloud
|
|
||||||
set_fact:
|
|
||||||
tripleo_enabled_services: "{{ enabled_services | default([]) }}"
|
|
||||||
|
|
||||||
- name: set dashboard_vip variable if dashboard is enabled
|
|
||||||
block:
|
|
||||||
- name: set dashboard_frontend variable
|
|
||||||
set_fact:
|
|
||||||
ceph_ansible_group_vars_all: "{{ ceph_ansible_group_vars_all | combine({ 'dashboard_frontend_vip': dashboard_vip | default() })
|
|
||||||
| combine({ 'prometheus_frontend_vip': monitoring_stack_vip | default()})
|
|
||||||
| combine({ 'alertmanager_frontend_vip': monitoring_stack_vip | default()}) }}"
|
|
||||||
vars:
|
|
||||||
dashboard_vip: |-
|
|
||||||
{% set dashboard_vip = control_virtual_ip %}
|
|
||||||
{% if 'StorageDashboard' in enabled_networks %}
|
|
||||||
{% set dashboard_vip = net_vip_map.get('storage_dashboard') %}
|
|
||||||
{% endif %}
|
|
||||||
{{ dashboard_vip }}
|
|
||||||
monitoring_stack_vip: |-
|
|
||||||
{% set monitoring_vip = control_virtual_ip %}
|
|
||||||
{% if 'Storage' in enabled_networks %}
|
|
||||||
{% set monitoring_vip = net_vip_map.get('storage') %}
|
|
||||||
{% endif %}
|
|
||||||
{{ monitoring_vip }}
|
|
||||||
when:
|
|
||||||
- tripleo_enabled_services | intersect(['ceph_grafana'])
|
|
||||||
|
|
||||||
- name: build the openstack pool list
|
|
||||||
import_tasks: build_pools.yml
|
|
||||||
vars:
|
|
||||||
tripleo_pool_images: "{{ ceph_pools.glance_pool.enabled }}"
|
|
||||||
tripleo_pool_vms: "{{ ceph_pools.nova_pool.enabled }}"
|
|
||||||
tripleo_pool_volumes: "{{ ceph_pools.cinder_pool.enabled }}"
|
|
||||||
tripleo_pool_backup: "{{ ceph_pools.cinder_backup_pool.enabled }}"
|
|
||||||
tripleo_pool_metrics: "{{ ceph_pools.gnocchi_pool.enabled }}"
|
|
||||||
|
|
||||||
- name: build openstack keys
|
|
||||||
include_tasks: build_keys.yml
|
|
||||||
|
|
||||||
- name: build ceph config overrides
|
|
||||||
include_tasks: build_config_overrides.yml
|
|
||||||
|
|
||||||
- name: generate ceph-ansible group vars all
|
|
||||||
copy:
|
|
||||||
dest: "{{ playbook_dir }}/ceph-ansible/group_vars/all.yml"
|
|
||||||
content: "{{ ceph_ansible_group_vars_all | combine(ceph_overrides|default({}))
|
|
||||||
| combine(openstack_pools|default({'openstack_pools': []})) | combine(openstack_keys|default({'openstack_keys': []}))
|
|
||||||
| combine(keys|default({'keys': []})) | combine(cephfs_data|default({})) | combine(cephfs_metadata|default({})) | to_nice_yaml }}"
|
|
||||||
|
|
||||||
- name: generate ceph-ansible extra vars
|
|
||||||
copy:
|
|
||||||
dest: "{{ playbook_dir }}/ceph-ansible/extra_vars.yml"
|
|
||||||
content: "{{ ceph_ansible_extra_vars | to_nice_yaml }}"
|
|
||||||
|
|
||||||
- when:
|
|
||||||
- ceph_external_multi_config is defined
|
|
||||||
- (ceph_external_multi_config|length) > 0
|
|
||||||
block:
|
|
||||||
|
|
||||||
- name: generate ceph-ansible extra vars foreach ceph in ceph_external_multi_config
|
|
||||||
copy:
|
|
||||||
dest: "{{ playbook_dir }}/ceph-ansible/external_{{ item.cluster }}_extra_vars.yml"
|
|
||||||
content: "{{ item | default('') | to_nice_yaml }}"
|
|
||||||
loop: "{{ ceph_external_multi_config }}"
|
|
||||||
|
|
||||||
- name: get hosts of ceph_mon group and ceph_client group from inventory
|
|
||||||
# Any host in the internal ceph cluster clients group and mon group
|
|
||||||
# should also be a client of the additional external ceph cluster(s).
|
|
||||||
# The clients group is sufficient if all cases are external, but if
|
|
||||||
# default ceph-ansible run is internal, then roles with Ceph may not
|
|
||||||
# include the CephClient service like the CephMon service found in the
|
|
||||||
# Controller role. If the CephMon service is present, CephClient is
|
|
||||||
# not necessary to get a key and conf file, but the additional runs
|
|
||||||
# for the external Ceph cluster(s) do need the key and conf file on
|
|
||||||
# the hosts in that role.
|
|
||||||
set_fact:
|
|
||||||
mon_client_hosts: "{{ mon_client_hosts | default([]) + [ item ] }}"
|
|
||||||
with_inventory_hostnames:
|
|
||||||
- ceph_client
|
|
||||||
- ceph_mon
|
|
||||||
|
|
||||||
- name: generate ceph-ansible/external_inventory.ini for ceph_external_multi_config
|
|
||||||
# Build a new inventory where the collected hosts are only clients
|
|
||||||
template:
|
|
||||||
src: "external_inventory.ini.j2"
|
|
||||||
dest: "{{ playbook_dir }}/ceph-ansible/external_inventory.ini"
|
|
|
@ -14,7 +14,6 @@
|
||||||
- tripleo-ansible-centos-8-molecule-tripleo_cellv2
|
- tripleo-ansible-centos-8-molecule-tripleo_cellv2
|
||||||
- tripleo-ansible-centos-8-molecule-tripleo_ceph_client
|
- tripleo-ansible-centos-8-molecule-tripleo_ceph_client
|
||||||
- tripleo-ansible-centos-8-molecule-tripleo_ceph_distribute_keys
|
- tripleo-ansible-centos-8-molecule-tripleo_ceph_distribute_keys
|
||||||
- tripleo-ansible-centos-8-molecule-tripleo_ceph_run_ansible
|
|
||||||
- tripleo-ansible-centos-8-molecule-tripleo_cephadm
|
- tripleo-ansible-centos-8-molecule-tripleo_cephadm
|
||||||
- tripleo-ansible-centos-8-molecule-tripleo_clients_install
|
- tripleo-ansible-centos-8-molecule-tripleo_clients_install
|
||||||
- tripleo-ansible-centos-8-molecule-tripleo_collectd
|
- tripleo-ansible-centos-8-molecule-tripleo_collectd
|
||||||
|
@ -76,7 +75,6 @@
|
||||||
- tripleo-ansible-centos-8-molecule-tripleo_cellv2
|
- tripleo-ansible-centos-8-molecule-tripleo_cellv2
|
||||||
- tripleo-ansible-centos-8-molecule-tripleo_ceph_client
|
- tripleo-ansible-centos-8-molecule-tripleo_ceph_client
|
||||||
- tripleo-ansible-centos-8-molecule-tripleo_ceph_distribute_keys
|
- tripleo-ansible-centos-8-molecule-tripleo_ceph_distribute_keys
|
||||||
- tripleo-ansible-centos-8-molecule-tripleo_ceph_run_ansible
|
|
||||||
- tripleo-ansible-centos-8-molecule-tripleo_cephadm
|
- tripleo-ansible-centos-8-molecule-tripleo_cephadm
|
||||||
- tripleo-ansible-centos-8-molecule-tripleo_clients_install
|
- tripleo-ansible-centos-8-molecule-tripleo_clients_install
|
||||||
- tripleo-ansible-centos-8-molecule-tripleo_collectd
|
- tripleo-ansible-centos-8-molecule-tripleo_collectd
|
||||||
|
@ -139,7 +137,6 @@
|
||||||
- tripleo-ansible-centos-8-molecule-tripleo_cellv2
|
- tripleo-ansible-centos-8-molecule-tripleo_cellv2
|
||||||
- tripleo-ansible-centos-8-molecule-tripleo_ceph_client
|
- tripleo-ansible-centos-8-molecule-tripleo_ceph_client
|
||||||
- tripleo-ansible-centos-8-molecule-tripleo_ceph_distribute_keys
|
- tripleo-ansible-centos-8-molecule-tripleo_ceph_distribute_keys
|
||||||
- tripleo-ansible-centos-8-molecule-tripleo_ceph_run_ansible
|
|
||||||
- tripleo-ansible-centos-8-molecule-tripleo_cephadm
|
- tripleo-ansible-centos-8-molecule-tripleo_cephadm
|
||||||
- tripleo-ansible-centos-8-molecule-tripleo_clients_install
|
- tripleo-ansible-centos-8-molecule-tripleo_clients_install
|
||||||
- tripleo-ansible-centos-8-molecule-tripleo_collectd
|
- tripleo-ansible-centos-8-molecule-tripleo_collectd
|
||||||
|
@ -259,14 +256,6 @@
|
||||||
vars:
|
vars:
|
||||||
tripleo_job_ansible_args: --skip-tags=ceph_fetch_admin_keyring,ceph_admin_key_rsync
|
tripleo_job_ansible_args: --skip-tags=ceph_fetch_admin_keyring,ceph_admin_key_rsync
|
||||||
tripleo_role_name: tripleo_ceph_distribute_keys
|
tripleo_role_name: tripleo_ceph_distribute_keys
|
||||||
- job:
|
|
||||||
files:
|
|
||||||
- ^tripleo_ansible/roles/tripleo_ceph_.*
|
|
||||||
name: tripleo-ansible-centos-8-molecule-tripleo_ceph_run_ansible
|
|
||||||
parent: tripleo-ansible-centos-8-base
|
|
||||||
vars:
|
|
||||||
tripleo_job_ansible_args: -v --skip-tags=run_uuid_ansible,run_ceph_ansible
|
|
||||||
tripleo_role_name: tripleo_ceph_run_ansible
|
|
||||||
- job:
|
- job:
|
||||||
files:
|
files:
|
||||||
- ^tripleo_ansible/roles/tripleo_cephadm/.*
|
- ^tripleo_ansible/roles/tripleo_cephadm/.*
|
||||||
|
|
Loading…
Reference in New Issue