forked from CCCHH/ansible-infra
Vendor Galaxy Roles and Collections
This commit is contained in:
parent
c1e1897cda
commit
2aed20393f
3553 changed files with 387444 additions and 2 deletions
|
|
@ -0,0 +1,5 @@
|
|||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
needs/target/setup_epel
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
has_podman: true
|
||||
podman_cli_version: '0.0'
|
||||
podman_skip_cleanup: true
|
||||
podman_packages:
|
||||
- podman
|
||||
podman_socket_service: podman.socket
|
||||
|
||||
podman_cleanup_packages:
|
||||
- podman
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Remove podman packages
|
||||
action: "{{ ansible_facts.pkg_mgr }}"
|
||||
args:
|
||||
name: "{{ podman_cleanup_packages }}"
|
||||
state: absent
|
||||
listen: cleanup podman
|
||||
when: not podman_skip_cleanup
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
dependencies:
|
||||
- setup_pkg_mgr
|
||||
|
|
@ -0,0 +1,163 @@
|
|||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
####################################################################
|
||||
# WARNING: These are designed specifically for Ansible tests #
|
||||
# and should not be used as examples of how to write Ansible roles #
|
||||
####################################################################
|
||||
|
||||
- name: Setup Podman
|
||||
when: ansible_facts.distribution ~ ansible_facts.distribution_major_version not in ['CentOS6', 'RedHat6']
|
||||
block:
|
||||
- name: Detect whether we are running inside a container
|
||||
community.docker.current_container_facts:
|
||||
|
||||
- name: Look for marker whether Podman was already set up
|
||||
ansible.builtin.stat:
|
||||
path: /root/community.docker-podman-is-set-up
|
||||
register: podman_setup_marker
|
||||
|
||||
- name: Figure out user ID
|
||||
ansible.builtin.command: id -u
|
||||
register: podman_user_id
|
||||
|
||||
- when: not podman_setup_marker.stat.exists and not ansible_module_running_in_container
|
||||
block:
|
||||
- name: Print information
|
||||
ansible.builtin.debug:
|
||||
msg: |-
|
||||
OS family: {{ ansible_facts.os_family }}
|
||||
Distribution: {{ ansible_facts.distribution }}
|
||||
Distribution major version: {{ ansible_facts.distribution_major_version }}
|
||||
Distribution full version: {{ ansible_facts.distribution_version }}
|
||||
|
||||
- name: Include distribution specific variables
|
||||
ansible.builtin.include_vars: "{{ lookup('first_found', params) }}"
|
||||
vars:
|
||||
params:
|
||||
files:
|
||||
- "{{ ansible_facts.distribution }}-{{ ansible_facts.distribution_major_version }}.yml"
|
||||
- "{{ ansible_facts.os_family }}-{{ ansible_facts.distribution_major_version }}.yml"
|
||||
- "{{ ansible_facts.distribution }}.yml"
|
||||
- "{{ ansible_facts.os_family }}.yml"
|
||||
- default.yml
|
||||
paths:
|
||||
- "{{ role_path }}/vars"
|
||||
|
||||
- when: has_podman
|
||||
block:
|
||||
- name: Install podman
|
||||
ansible.builtin.package:
|
||||
name: "{{ podman_packages }}"
|
||||
notify: cleanup podman
|
||||
|
||||
- name: Start podman socket for this user
|
||||
ansible.builtin.systemd_service:
|
||||
name: "{{ podman_socket_service }}"
|
||||
state: started
|
||||
scope: "{{ 'global' if podman_user_id.stdout == '0' and ansible_facts.os_family == 'RedHat' and (ansible_facts.distribution_major_version | int < 10) else 'user' }}"
|
||||
environment:
|
||||
XDG_RUNTIME_DIR: "{{ '/run' if podman_user_id.stdout == '0' else ('/run/user/' ~ podman_user_id.stdout) }}"
|
||||
|
||||
- name: Set marker that Podman was already set up
|
||||
ansible.builtin.file:
|
||||
path: /root/community.docker-podman-is-set-up
|
||||
state: touch
|
||||
when: podman_skip_cleanup
|
||||
|
||||
- when: not has_podman or ansible_module_running_in_container
|
||||
block:
|
||||
- ansible.builtin.set_fact:
|
||||
podman_cli_version: "0.0"
|
||||
podman_socket: "not available"
|
||||
|
||||
- when: has_podman and not ansible_module_running_in_container
|
||||
block:
|
||||
- name: Check Podman CLI version
|
||||
ansible.builtin.command: "podman version -f {% raw %}'{{.Client.Version}}'{% endraw %}"
|
||||
register: podman_cli_version_stdout
|
||||
ignore_errors: true
|
||||
|
||||
- ansible.builtin.set_fact:
|
||||
podman_cli_version: "{{ podman_cli_version_stdout.stdout | default('0.0', true) }}"
|
||||
podman_socket: "unix://{{ '/run' if podman_user_id.stdout == '0' else ('/run/user/' ~ podman_user_id.stdout) }}/podman/podman.sock"
|
||||
|
||||
- name: Create podman Docker context
|
||||
ansible.builtin.command:
|
||||
cmd: >-
|
||||
docker context
|
||||
create podman
|
||||
--description "Podman"
|
||||
--docker "host={{ podman_socket }}"
|
||||
ignore_errors: true
|
||||
|
||||
- ansible.builtin.debug:
|
||||
msg: |-
|
||||
Podman CLI version: {{ podman_cli_version }}
|
||||
Podman socket: {{ podman_socket }}
|
||||
|
||||
- when: podman_cli_version is version('0.0', '>')
|
||||
block:
|
||||
# Cleanup podman
|
||||
- name: Show all containers
|
||||
ansible.builtin.command: 'podman ps --no-trunc --format {% raw %}"{{.Names}}"{% endraw %}'
|
||||
|
||||
- name: "Remove all ansible-docker-test-* podman containers"
|
||||
ansible.builtin.shell: 'podman ps --no-trunc --format {% raw %}"{{.Names}}"{% endraw %} | grep "^ansible-docker-test-" | xargs -r podman container rm -f'
|
||||
register: podman_containers
|
||||
retries: 3
|
||||
delay: 3
|
||||
until: podman_containers is success
|
||||
ignore_errors: true
|
||||
|
||||
- name: "Remove all ansible-docker-test-* podman volumes"
|
||||
ansible.builtin.shell: 'podman volume ls --format {% raw %}"{{.Name}}"{% endraw %} | grep "^ansible-docker-test-" | xargs -r podman volume rm -f'
|
||||
register: podman_volumes
|
||||
ignore_errors: true
|
||||
|
||||
- name: "Remove all ansible-docker-test-* podman networks"
|
||||
ansible.builtin.shell: 'podman network ls --no-trunc --format {% raw %}"{{.Name}}"{% endraw %} | grep "^ansible-docker-test-" | xargs -r podman network rm'
|
||||
register: podman_networks
|
||||
ignore_errors: true
|
||||
|
||||
- name: Cleaned podman resources
|
||||
ansible.builtin.debug:
|
||||
var: podman_resources
|
||||
vars:
|
||||
podman_resources:
|
||||
containers: "{{ podman_containers.stdout_lines | default([]) }}"
|
||||
volumes: "{{ podman_volumes.stdout_lines | default([]) }}"
|
||||
networks: "{{ podman_networks.stdout_lines | default([]) }}"
|
||||
|
||||
# List all existing podman resources
|
||||
- name: List all podman containers
|
||||
ansible.builtin.command: podman ps --no-trunc -a
|
||||
register: podman_containers
|
||||
ignore_errors: true
|
||||
|
||||
- name: List all podman volumes
|
||||
ansible.builtin.command: podman volume ls
|
||||
register: podman_volumes
|
||||
ignore_errors: true
|
||||
|
||||
- name: List all podman networks
|
||||
ansible.builtin.command: podman network ls --no-trunc
|
||||
register: podman_networks
|
||||
ignore_errors: true
|
||||
|
||||
- name: List all podman images
|
||||
ansible.builtin.command: podman images --no-trunc -a
|
||||
register: podman_images
|
||||
ignore_errors: true
|
||||
|
||||
- name: Still existing podman resources
|
||||
ansible.builtin.debug:
|
||||
var: podman_resources
|
||||
vars:
|
||||
podman_resources:
|
||||
containers: "{{ podman_containers.stdout_lines | default([]) }}"
|
||||
volumes: "{{ podman_volumes.stdout_lines | default([]) }}"
|
||||
networks: "{{ podman_networks.stdout_lines | default([]) }}"
|
||||
images: "{{ podman_images.stdout_lines | default([]) }}"
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
podman_socket_service: podman
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# While CentOS 7 has podman, it doesn't come with a podman socket, so we treat it as whether it doesn't exist at all...
|
||||
has_podman: false
|
||||
podman_packages: []
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# While CentOS 8 has podman, there's a strange conflict resolution issue with it
|
||||
# TODO: try to fix that issue!
|
||||
has_podman: false
|
||||
podman_packages: []
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
has_podman: false
|
||||
podman_packages: []
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
Loading…
Add table
Add a link
Reference in a new issue