diff --git a/README.md b/README.md index 7aa3467..972762d 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,10 @@ - 각 서버에 ssh-key 배포 후 연결 - 확인 명령어 : ansible all -m ping - +- CentOS ansible 설치 방법 + : yum install -y python3 + : pip3 install --upgrade --ignore-installed pip setuptools + : pip3 install ansible 2. 수정필요파일 - inventory @@ -13,9 +16,11 @@ - cmoa_install.yaml : 이미 kubernetes가깔려있다면 "- role: cmoa_os_setting" 주석 처리 -- roles/cmoa_install/default/main.yml +- roles/cmoa_install/defaults/main.yml : cmoa_version: relx.x.x 3. 실행 방법 : ansible-playbook cmoa_install.yaml + or + : ansible-playbook cmoa_install.yaml -i inventory_cmoa2 diff --git a/ansible.cfg b/ansible.cfg index fca76ad..72c8c68 100755 --- a/ansible.cfg +++ b/ansible.cfg @@ -1,5 +1,6 @@ [defaults] -inventory = inventory -roles_path = roles +inventory = inventory +roles_path = roles deprecation_warnings = False display_skipped_hosts = no +#ansible_home = . diff --git a/cmoa_agent_install.yaml b/cmoa_agent_install.yaml new file mode 100755 index 0000000..f645fbb --- /dev/null +++ b/cmoa_agent_install.yaml @@ -0,0 +1,9 @@ +--- +- hosts: cluster + become: true + gather_facts: true + environment: + KUBECONFIG: /root/.kube/ansible_config + roles: + - role: agent_os_setting + diff --git a/cmoa_install.yaml b/cmoa_install.yaml index a6427a7..9837135 100755 --- a/cmoa_install.yaml +++ b/cmoa_install.yaml @@ -8,6 +8,4 @@ - role: cmoa_os_setting - role: cmoa_install delegate_to: 127.0.0.1 - - role: cmoa_demo_install - delegate_to: 127.0.0.1 diff --git a/collections/ansible_collections/community/general/.azure-pipelines/README.md b/collections/ansible_collections/community/general/.azure-pipelines/README.md new file mode 100644 index 0000000..9e8ad74 --- /dev/null +++ b/collections/ansible_collections/community/general/.azure-pipelines/README.md @@ -0,0 +1,9 @@ + + +## Azure Pipelines Configuration + +Please see the [Documentation](https://github.com/ansible/community/wiki/Testing:-Azure-Pipelines) for more information. diff --git a/collections/ansible_collections/community/general/.azure-pipelines/azure-pipelines.yml b/collections/ansible_collections/community/general/.azure-pipelines/azure-pipelines.yml new file mode 100644 index 0000000..3816369 --- /dev/null +++ b/collections/ansible_collections/community/general/.azure-pipelines/azure-pipelines.yml @@ -0,0 +1,499 @@ +--- +# 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 + +trigger: + batch: true + branches: + include: + - main + - stable-* + +pr: + autoCancel: true + branches: + include: + - main + - stable-* + +schedules: + - cron: 0 8 * * * + displayName: Nightly (main) + always: true + branches: + include: + - main + - cron: 0 10 * * * + displayName: Nightly (active stable branches) + always: true + branches: + include: + - stable-6 + - stable-5 + - cron: 0 11 * * 0 + displayName: Weekly (old stable branches) + always: true + branches: + include: + - stable-4 + +variables: + - name: checkoutPath + value: ansible_collections/community/general + - name: coverageBranches + value: main + - name: pipelinesCoverage + value: coverage + - name: entryPoint + value: tests/utils/shippable/shippable.sh + - name: fetchDepth + value: 0 + +resources: + containers: + - container: default + image: quay.io/ansible/azure-pipelines-test-container:3.0.0 + +pool: Standard + +stages: +### Sanity + - stage: Sanity_devel + displayName: Sanity devel + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + nameFormat: Test {0} + testFormat: devel/sanity/{0} + targets: + - test: 1 + - test: 2 + - test: 3 + - test: 4 + - test: extra + - stage: Sanity_2_14 + displayName: Sanity 2.14 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + nameFormat: Test {0} + testFormat: 2.14/sanity/{0} + targets: + - test: 1 + - test: 2 + - test: 3 + - test: 4 + - stage: Sanity_2_13 + displayName: Sanity 2.13 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + nameFormat: Test {0} + testFormat: 2.13/sanity/{0} + targets: + - test: 1 + - test: 2 + - test: 3 + - test: 4 + - stage: Sanity_2_12 + displayName: Sanity 2.12 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + nameFormat: Test {0} + testFormat: 2.12/sanity/{0} + targets: + - test: 1 + - test: 2 + - test: 3 + - test: 4 + - stage: Sanity_2_11 + displayName: Sanity 2.11 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + nameFormat: Test {0} + testFormat: 2.11/sanity/{0} + targets: + - test: 1 + - test: 2 + - test: 3 + - test: 4 +### Units + - stage: Units_devel + displayName: Units devel + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + nameFormat: Python {0} + testFormat: devel/units/{0}/1 + targets: + - test: 2.7 + - test: 3.5 + - test: 3.6 + - test: 3.7 + - test: 3.8 + - test: 3.9 + - test: '3.10' + - test: '3.11' + - stage: Units_2_14 + displayName: Units 2.14 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + nameFormat: Python {0} + testFormat: 2.14/units/{0}/1 + targets: + - test: 2.7 + - test: 3.9 + - stage: Units_2_13 + displayName: Units 2.13 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + nameFormat: Python {0} + testFormat: 2.13/units/{0}/1 + targets: + - test: 2.7 + - test: 3.8 + - stage: Units_2_12 + displayName: Units 2.12 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + nameFormat: Python {0} + testFormat: 2.12/units/{0}/1 + targets: + - test: 2.6 + - test: 3.8 + - stage: Units_2_11 + displayName: Units 2.11 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + nameFormat: Python {0} + testFormat: 2.11/units/{0}/1 + targets: + - test: 2.7 + - test: 3.5 + +## Remote + - stage: Remote_devel_extra_vms + displayName: Remote devel extra VMs + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + testFormat: devel/{0} + targets: + - name: Alpine 3.17 + test: alpine/3.17 + # - name: Fedora 37 + # test: fedora/37 + # - name: Ubuntu 20.04 + # test: ubuntu/20.04 + - name: Ubuntu 22.04 + test: ubuntu/22.04 + groups: + - vm + - stage: Remote_devel + displayName: Remote devel + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + testFormat: devel/{0} + targets: + - name: macOS 12.0 + test: macos/12.0 + - name: RHEL 7.9 + test: rhel/7.9 + - name: RHEL 9.1 + test: rhel/9.1 + - name: FreeBSD 13.1 + test: freebsd/13.1 + - name: FreeBSD 12.4 + test: freebsd/12.4 + groups: + - 1 + - 2 + - 3 + - stage: Remote_2_14 + displayName: Remote 2.14 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + testFormat: 2.14/{0} + targets: + - name: RHEL 9.0 + test: rhel/9.0 + - name: FreeBSD 12.3 + test: freebsd/12.3 + groups: + - 1 + - 2 + - 3 + - stage: Remote_2_13 + displayName: Remote 2.13 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + testFormat: 2.13/{0} + targets: + - name: macOS 12.0 + test: macos/12.0 + - name: RHEL 8.5 + test: rhel/8.5 + groups: + - 1 + - 2 + - 3 + - stage: Remote_2_12 + displayName: Remote 2.12 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + testFormat: 2.12/{0} + targets: + - name: macOS 11.1 + test: macos/11.1 + - name: RHEL 8.4 + test: rhel/8.4 + - name: FreeBSD 13.0 + test: freebsd/13.0 + groups: + - 1 + - 2 + - 3 + - stage: Remote_2_11 + displayName: Remote 2.11 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + testFormat: 2.11/{0} + targets: + - name: RHEL 7.9 + test: rhel/7.9 + - name: RHEL 8.3 + test: rhel/8.3 + groups: + - 1 + - 2 + - 3 + +### Docker + - stage: Docker_devel + displayName: Docker devel + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + testFormat: devel/linux/{0} + targets: + - name: CentOS 7 + test: centos7 + - name: Fedora 37 + test: fedora37 + - name: openSUSE 15 + test: opensuse15 + - name: Ubuntu 20.04 + test: ubuntu2004 + - name: Ubuntu 22.04 + test: ubuntu2204 + - name: Alpine 3 + test: alpine3 + groups: + - 1 + - 2 + - 3 + - stage: Docker_2_14 + displayName: Docker 2.14 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + testFormat: 2.14/linux/{0} + targets: + - name: Fedora 36 + test: fedora36 + groups: + - 1 + - 2 + - 3 + - stage: Docker_2_13 + displayName: Docker 2.13 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + testFormat: 2.13/linux/{0} + targets: + - name: Fedora 35 + test: fedora35 + - name: openSUSE 15 py2 + test: opensuse15py2 + - name: Alpine 3 + test: alpine3 + groups: + - 1 + - 2 + - 3 + - stage: Docker_2_12 + displayName: Docker 2.12 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + testFormat: 2.12/linux/{0} + targets: + - name: CentOS 6 + test: centos6 + - name: Fedora 34 + test: fedora34 + - name: Ubuntu 18.04 + test: ubuntu1804 + groups: + - 1 + - 2 + - 3 + - stage: Docker_2_11 + displayName: Docker 2.11 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + testFormat: 2.11/linux/{0} + targets: + - name: Fedora 32 + test: fedora32 + - name: Fedora 33 + test: fedora33 + - name: Alpine 3 + test: alpine3 + groups: + - 1 + - 2 + - 3 + +### Community Docker + - stage: Docker_community_devel + displayName: Docker (community images) devel + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + testFormat: devel/linux-community/{0} + targets: + - name: Debian Bullseye + test: debian-bullseye/3.9 + - name: ArchLinux + test: archlinux/3.10 + - name: CentOS Stream 8 + test: centos-stream8/3.9 + groups: + - 1 + - 2 + - 3 + +### Generic + - stage: Generic_devel + displayName: Generic devel + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + nameFormat: Python {0} + testFormat: devel/generic/{0}/1 + targets: + - test: 2.7 + - test: '3.11' + - stage: Generic_2_14 + displayName: Generic 2.14 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + nameFormat: Python {0} + testFormat: 2.14/generic/{0}/1 + targets: + - test: '3.10' + - stage: Generic_2_13 + displayName: Generic 2.13 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + nameFormat: Python {0} + testFormat: 2.13/generic/{0}/1 + targets: + - test: 3.9 + - stage: Generic_2_12 + displayName: Generic 2.12 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + nameFormat: Python {0} + testFormat: 2.12/generic/{0}/1 + targets: + - test: 3.8 + - stage: Generic_2_11 + displayName: Generic 2.11 + dependsOn: [] + jobs: + - template: templates/matrix.yml + parameters: + nameFormat: Python {0} + testFormat: 2.11/generic/{0}/1 + targets: + - test: 2.7 + - test: 3.5 + + - stage: Summary + condition: succeededOrFailed() + dependsOn: + - Sanity_devel + - Sanity_2_11 + - Sanity_2_12 + - Sanity_2_13 + - Sanity_2_14 + - Units_devel + - Units_2_11 + - Units_2_12 + - Units_2_13 + - Units_2_14 + - Remote_devel_extra_vms + - Remote_devel + - Remote_2_11 + - Remote_2_12 + - Remote_2_13 + - Remote_2_14 + - Docker_devel + - Docker_2_11 + - Docker_2_12 + - Docker_2_13 + - Docker_2_14 + - Docker_community_devel +# Right now all generic tests are disabled. Uncomment when at least one of them is re-enabled. +# - Generic_devel +# - Generic_2_11 +# - Generic_2_12 +# - Generic_2_13 +# - Generic_2_14 + jobs: + - template: templates/coverage.yml diff --git a/collections/ansible_collections/community/general/.azure-pipelines/scripts/aggregate-coverage.sh b/collections/ansible_collections/community/general/.azure-pipelines/scripts/aggregate-coverage.sh new file mode 100755 index 0000000..ca2b19d --- /dev/null +++ b/collections/ansible_collections/community/general/.azure-pipelines/scripts/aggregate-coverage.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# 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 + +# Aggregate code coverage results for later processing. + +set -o pipefail -eu + +agent_temp_directory="$1" + +PATH="${PWD}/bin:${PATH}" + +mkdir "${agent_temp_directory}/coverage/" + +options=(--venv --venv-system-site-packages --color -v) + +ansible-test coverage combine --group-by command --export "${agent_temp_directory}/coverage/" "${options[@]}" + +if ansible-test coverage analyze targets generate --help >/dev/null 2>&1; then + # Only analyze coverage if the installed version of ansible-test supports it. + # Doing so allows this script to work unmodified for multiple Ansible versions. + ansible-test coverage analyze targets generate "${agent_temp_directory}/coverage/coverage-analyze-targets.json" "${options[@]}" +fi diff --git a/collections/ansible_collections/community/general/.azure-pipelines/scripts/combine-coverage.py b/collections/ansible_collections/community/general/.azure-pipelines/scripts/combine-coverage.py new file mode 100755 index 0000000..3b2fd99 --- /dev/null +++ b/collections/ansible_collections/community/general/.azure-pipelines/scripts/combine-coverage.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python +# 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 + +""" +Combine coverage data from multiple jobs, keeping the data only from the most recent attempt from each job. +Coverage artifacts must be named using the format: "Coverage $(System.JobAttempt) {StableUniqueNameForEachJob}" +The recommended coverage artifact name format is: Coverage $(System.JobAttempt) $(System.StageDisplayName) $(System.JobDisplayName) +Keep in mind that Azure Pipelines does not enforce unique job display names (only names). +It is up to pipeline authors to avoid name collisions when deviating from the recommended format. +""" + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import os +import re +import shutil +import sys + + +def main(): + """Main program entry point.""" + source_directory = sys.argv[1] + + if '/ansible_collections/' in os.getcwd(): + output_path = "tests/output" + else: + output_path = "test/results" + + destination_directory = os.path.join(output_path, 'coverage') + + if not os.path.exists(destination_directory): + os.makedirs(destination_directory) + + jobs = {} + count = 0 + + for name in os.listdir(source_directory): + match = re.search('^Coverage (?P[0-9]+) (?P