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:
|
||||
- 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
|
||||
# License for the specific language governing permissions and limitations
|
||||
# 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_ceph_client
|
||||
- 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_clients_install
|
||||
- tripleo-ansible-centos-8-molecule-tripleo_collectd
|
||||
|
@ -76,7 +75,6 @@
|
|||
- tripleo-ansible-centos-8-molecule-tripleo_cellv2
|
||||
- tripleo-ansible-centos-8-molecule-tripleo_ceph_client
|
||||
- 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_clients_install
|
||||
- tripleo-ansible-centos-8-molecule-tripleo_collectd
|
||||
|
@ -139,7 +137,6 @@
|
|||
- tripleo-ansible-centos-8-molecule-tripleo_cellv2
|
||||
- tripleo-ansible-centos-8-molecule-tripleo_ceph_client
|
||||
- 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_clients_install
|
||||
- tripleo-ansible-centos-8-molecule-tripleo_collectd
|
||||
|
@ -259,14 +256,6 @@
|
|||
vars:
|
||||
tripleo_job_ansible_args: --skip-tags=ceph_fetch_admin_keyring,ceph_admin_key_rsync
|
||||
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:
|
||||
files:
|
||||
- ^tripleo_ansible/roles/tripleo_cephadm/.*
|
||||
|
|
Loading…
Reference in New Issue