From 9b141583a63c4cec8d18d0176d005a109e2e483a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Mon, 23 Jan 2023 13:28:57 -0300 Subject: [PATCH 01/25] Run tests on EC2 --- .github/workflows/main.yml | 111 ++++++++++++++++++------------------- 1 file changed, 53 insertions(+), 58 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b13122b22..d3051dc09 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,66 +1,61 @@ --- -name: Molecule tests for Wazuh Ansible -on: [pull_request, workflow_dispatch, release] - +name: do-the-job +on: [push, pull_request, workflow_dispatch, release] jobs: - - scenario-default: - name: Default scenario (smoke) + start-runner: + name: Start self-hosted EC2 runner runs-on: ubuntu-latest + outputs: + label: ${{ steps.start-ec2-runner.outputs.label }} + ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }} steps: - - name: Check out the codebase. - uses: actions/checkout@v2 - - - name: Hack to get setup-python to work on act. See act issue 251 - run: | - # Hack to get setup-python to work on act - if [ ! -f "/etc/lsb-release" ] ; then - echo "DISTRIB_RELEASE=18.04" > /etc/lsb-release - fi - - - name: Set up Python 3. - uses: actions/setup-python@v2 + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 with: - python-version: '3.x' - - - name: Install poetry - run: pip3 install poetry - - - name: Install dependencies - run: poetry install - - - name: Run Molecule tests. - run: poetry run molecule test -s default - env: - PY_COLORS: '1' - ANSIBLE_FORCE_COLOR: '1' - - scenario-distributed-wazuh: - name: Distributed Wazuh + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Start EC2 runner + id: start-ec2-runner + uses: machulav/ec2-github-runner@v2 + with: + mode: start + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + ec2-image-id: ami-123 + ec2-instance-type: t3.nano + subnet-id: subnet-123 + security-group-id: sg-123 + iam-role-name: my-role-name # optional, requires additional permissions + aws-resource-tags: > # optional, requires additional permissions + [ + {"Key": "Name", "Value": "ec2-github-runner"}, + {"Key": "GitHubRepository", "Value": "${{ github.repository }}"} + ] + do-the-job: + name: Do the job on the runner + needs: start-runner # required to start the main job when the runner is ready + runs-on: ${{ needs.start-runner.outputs.label }} # run the job on the newly created runner + steps: + - name: Hello World + run: echo 'Hello World!' + stop-runner: + name: Stop self-hosted EC2 runner + needs: + - start-runner # required to get output from the start-runner job + - do-the-job # required to wait when the main job is done runs-on: ubuntu-latest + if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs steps: - - name: Check out the codebase. - uses: actions/checkout@v2 - - - name: Hack to get setup-python to work on act. See act issue 251 - run: | - if [ ! -f "/etc/lsb-release" ] ; then - echo "DISTRIB_RELEASE=18.04" > /etc/lsb-release - fi - - - name: Set up Python 3. - uses: actions/setup-python@v2 + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Stop EC2 runner + uses: machulav/ec2-github-runner@v2 with: - python-version: '3.x' - - - name: Install poetry - run: pip3 install poetry - - - name: Install dependencies - run: poetry install - - - name: Run Molecule tests. - run: poetry run molecule test -s distributed-wazuh - env: - PY_COLORS: '1' - ANSIBLE_FORCE_COLOR: '1' + mode: stop + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + label: ${{ needs.start-runner.outputs.label }} + ec2-instance-id: ${{ needs.start-runner.outputs.ec2-instance-id }} \ No newline at end of file From 612d074144d094bfb8c9046d02d6ae9884435e4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Mon, 23 Jan 2023 13:55:55 -0300 Subject: [PATCH 02/25] EC2 config for tests updated --- .github/workflows/main.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d3051dc09..a76983a33 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -21,11 +21,11 @@ jobs: with: mode: start github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} - ec2-image-id: ami-123 + ec2-image-id: ${{ secrets.CENTOS8_AMI_ID }} ec2-instance-type: t3.nano - subnet-id: subnet-123 - security-group-id: sg-123 - iam-role-name: my-role-name # optional, requires additional permissions + subnet-id: ${{ secrets.SUBNET_ID }} + security-group-id: ${{ secrets.SG_ID }} + #iam-role-name: my-role-name # optional, requires additional permissions aws-resource-tags: > # optional, requires additional permissions [ {"Key": "Name", "Value": "ec2-github-runner"}, From d9e7114df30b8cbca184c5a54fd0858d1bce0fd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Mon, 23 Jan 2023 14:06:36 -0300 Subject: [PATCH 03/25] EC2 config for tests updated --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a76983a33..4230a9ea3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -22,7 +22,7 @@ jobs: mode: start github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} ec2-image-id: ${{ secrets.CENTOS8_AMI_ID }} - ec2-instance-type: t3.nano + ec2-instance-type: t3.small subnet-id: ${{ secrets.SUBNET_ID }} security-group-id: ${{ secrets.SG_ID }} #iam-role-name: my-role-name # optional, requires additional permissions From 0cd0f4a4199f1ce0c62220c97cae1b29f638d965 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Tue, 24 Jan 2023 08:42:39 -0300 Subject: [PATCH 04/25] GH Actions steps added --- .github/workflows/main.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4230a9ea3..ed4a151b6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -36,8 +36,17 @@ jobs: needs: start-runner # required to start the main job when the runner is ready runs-on: ${{ needs.start-runner.outputs.label }} # run the job on the newly created runner steps: - - name: Hello World - run: echo 'Hello World!' + - name: Check out the codebase. + uses: actions/checkout@v2 + - name: Hack to get setup-python to work on act. See act issue 251 + run: | + if [ ! -f "/etc/lsb-release" ] ; then + echo "DISTRIB_RELEASE=18.04" > /etc/lsb-release + fi + - name: Set up Python 3. + uses: actions/setup-python@v2 + with: + python-version: '3.x' stop-runner: name: Stop self-hosted EC2 runner needs: From 6dd11834ef7810d11702ab1e6e9a060f3cce8e72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Tue, 24 Jan 2023 09:02:31 -0300 Subject: [PATCH 05/25] GH Actions playbook step added --- .github/playbooks/single-wazuh.yml | 38 ++++++++++++++++++++++++++++++ .github/workflows/main.yml | 2 ++ 2 files changed, 40 insertions(+) create mode 100644 .github/playbooks/single-wazuh.yml diff --git a/.github/playbooks/single-wazuh.yml b/.github/playbooks/single-wazuh.yml new file mode 100644 index 000000000..b3b3b7afd --- /dev/null +++ b/.github/playbooks/single-wazuh.yml @@ -0,0 +1,38 @@ +--- +- name: ConvergeCerts + hosts: localhost + roles: + - role: ../../roles/wazuh/wazuh-indexer + perform_installation: false + vars: + instances: + node1: + name: node-1 # Important: must be equal to indexer_node_name. + ip: 127.0.0.1 + role: indexer + tags: + - generate-certs +- name: ConvergeInstall + hosts: localhost + roles: + # 1. Check packages + - role: ../../roles/wazuh/check-packages + become: no + delegate_to: localhost + run_once: true + # 2. Managers + - role: ../../roles/wazuh/ansible-wazuh-manager + vars: + - role: ../../roles/wazuh/ansible-filebeat-oss + vars: + - filebeat_output_indexer_hosts: + - "indexer_centos7:9200" + pre_tasks: + - name: (converge) fix missing packages in cloud images + apt: + name: + - unzip + - gpg-agent + state: present + update_cache: yes + when: ansible_distribution == "Ubuntu" \ No newline at end of file diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ed4a151b6..94a3aa7f5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -47,6 +47,8 @@ jobs: uses: actions/setup-python@v2 with: python-version: '3.x' + - name: Ansible Playbook run Wazuh Single node instance + run: ansible-playbook ./.github/playbooks/single-wazuh.yml stop-runner: name: Stop self-hosted EC2 runner needs: From ff0fc511f2598d761576260576c3aaa2366355f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Tue, 24 Jan 2023 09:12:27 -0300 Subject: [PATCH 06/25] GH Actions env vars added --- .github/workflows/main.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 94a3aa7f5..7cd0a15cd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -49,6 +49,9 @@ jobs: python-version: '3.x' - name: Ansible Playbook run Wazuh Single node instance run: ansible-playbook ./.github/playbooks/single-wazuh.yml + env: + PY_COLORS: '1' + ANSIBLE_FORCE_COLOR: '1' stop-runner: name: Stop self-hosted EC2 runner needs: From b6130cf9729267ff16b62754307adae389dee087 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Tue, 24 Jan 2023 10:16:20 -0300 Subject: [PATCH 07/25] GH Actions AIO added --- .github/playbooks/aio-wazuh.yml | 65 ++++++++++++++++ .github/workflows/main.yml.bkp | 70 +++++++++++++++++ .github/workflows/main_aio.yml | 75 +++++++++++++++++++ .../workflows/{main.yml => main_wazuh.yml} | 0 4 files changed, 210 insertions(+) create mode 100644 .github/playbooks/aio-wazuh.yml create mode 100644 .github/workflows/main.yml.bkp create mode 100644 .github/workflows/main_aio.yml rename .github/workflows/{main.yml => main_wazuh.yml} (100%) diff --git a/.github/playbooks/aio-wazuh.yml b/.github/playbooks/aio-wazuh.yml new file mode 100644 index 000000000..e89efbcb3 --- /dev/null +++ b/.github/playbooks/aio-wazuh.yml @@ -0,0 +1,65 @@ +- name: Generate certificates prior to converging + hosts: localhost + become: true + become_user: root + roles: + - role: ../../roles/wazuh/wazuh-indexer + vars: + generate_certs: true + perform_installation: false + instances: + node1: + name: wazuh-es01 # Important: must be equal to indexer_node_name. + ip: "127.0.0.1" # When unzipping, the node will search for its node name folder to get the cert. + role: indexer + node3: + name: wazuh-mgr01 + ip: "127.0.0.1" + role: wazuh + node_type: master + node5: + name: wazuh-dash01 + ip: "127.0.0.1" + role: dashboard + pre_tasks: + - name: overview of cert configuration + debug: + var: wazuh_endpoint_list + +- name: Converge + hosts: localhost + become: true + become_user: root + roles: + # 1. Check packages + - role: ../../roles/wazuh/check-packages + become: no + delegate_to: localhost + run_once: true + # 2. Wazuh indexer + - role: ../../roles/wazuh/wazuh-indexer + # 3. Managers + - role: ../../roles/wazuh/ansible-wazuh-manager + - role: ../../roles/wazuh/ansible-filebeat-oss + # 4. Wazuh dashboard + - role: ../../roles/wazuh/wazuh-dashboard + # 5. Agents: +# - role: ../../roles/wazuh/ansible-wazuh-agent +# vars: +# wazuh_managers: '{{ wazuh_managers_list }}' +# when: inventory_hostname in groups['agents'] + vars: + instances: + node1: + name: wazuh-es01 # Important: must be equal to indexer_node_name. + ip: "127.0.0.1" # When unzipping, the node will search for its node name folder to get the cert. + role: indexer + node3: + name: wazuh-mgr01 + ip: "127.0.0.1" + role: wazuh + node_type: master + node5: + name: wazuh-dash01 + ip: "127.0.0.1" + role: dashboard \ No newline at end of file diff --git a/.github/workflows/main.yml.bkp b/.github/workflows/main.yml.bkp new file mode 100644 index 000000000..ed4a151b6 --- /dev/null +++ b/.github/workflows/main.yml.bkp @@ -0,0 +1,70 @@ +--- +name: do-the-job +on: [push, pull_request, workflow_dispatch, release] +jobs: + start-runner: + name: Start self-hosted EC2 runner + runs-on: ubuntu-latest + outputs: + label: ${{ steps.start-ec2-runner.outputs.label }} + ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }} + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Start EC2 runner + id: start-ec2-runner + uses: machulav/ec2-github-runner@v2 + with: + mode: start + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + ec2-image-id: ${{ secrets.CENTOS8_AMI_ID }} + ec2-instance-type: t3.small + subnet-id: ${{ secrets.SUBNET_ID }} + security-group-id: ${{ secrets.SG_ID }} + #iam-role-name: my-role-name # optional, requires additional permissions + aws-resource-tags: > # optional, requires additional permissions + [ + {"Key": "Name", "Value": "ec2-github-runner"}, + {"Key": "GitHubRepository", "Value": "${{ github.repository }}"} + ] + do-the-job: + name: Do the job on the runner + needs: start-runner # required to start the main job when the runner is ready + runs-on: ${{ needs.start-runner.outputs.label }} # run the job on the newly created runner + steps: + - name: Check out the codebase. + uses: actions/checkout@v2 + - name: Hack to get setup-python to work on act. See act issue 251 + run: | + if [ ! -f "/etc/lsb-release" ] ; then + echo "DISTRIB_RELEASE=18.04" > /etc/lsb-release + fi + - name: Set up Python 3. + uses: actions/setup-python@v2 + with: + python-version: '3.x' + stop-runner: + name: Stop self-hosted EC2 runner + needs: + - start-runner # required to get output from the start-runner job + - do-the-job # required to wait when the main job is done + runs-on: ubuntu-latest + if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Stop EC2 runner + uses: machulav/ec2-github-runner@v2 + with: + mode: stop + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + label: ${{ needs.start-runner.outputs.label }} + ec2-instance-id: ${{ needs.start-runner.outputs.ec2-instance-id }} \ No newline at end of file diff --git a/.github/workflows/main_aio.yml b/.github/workflows/main_aio.yml new file mode 100644 index 000000000..31b4c3cf1 --- /dev/null +++ b/.github/workflows/main_aio.yml @@ -0,0 +1,75 @@ +--- +name: do-the-job +on: [push, pull_request, workflow_dispatch, release] +jobs: + start-runner: + name: Start self-hosted EC2 runner + runs-on: ubuntu-latest + outputs: + label: ${{ steps.start-ec2-runner.outputs.label }} + ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }} + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Start EC2 runner + id: start-ec2-runner + uses: machulav/ec2-github-runner@v2 + with: + mode: start + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + ec2-image-id: ${{ secrets.CENTOS8_AMI_ID }} + ec2-instance-type: t3.small + subnet-id: ${{ secrets.SUBNET_ID }} + security-group-id: ${{ secrets.SG_ID }} + #iam-role-name: my-role-name # optional, requires additional permissions + aws-resource-tags: > # optional, requires additional permissions + [ + {"Key": "Name", "Value": "ec2-github-runner"}, + {"Key": "GitHubRepository", "Value": "${{ github.repository }}"} + ] + do-the-job: + name: Do the job on the runner + needs: start-runner # required to start the main job when the runner is ready + runs-on: ${{ needs.start-runner.outputs.label }} # run the job on the newly created runner + steps: + - name: Check out the codebase. + uses: actions/checkout@v2 + - name: Hack to get setup-python to work on act. See act issue 251 + run: | + if [ ! -f "/etc/lsb-release" ] ; then + echo "DISTRIB_RELEASE=18.04" > /etc/lsb-release + fi + - name: Set up Python 3. + uses: actions/setup-python@v2 + with: + python-version: '3.x' + - name: Ansible Playbook run Wazuh AIO + run: ansible-playbook ./.github/playbooks/aio-wazuh.yml + env: + PY_COLORS: '1' + ANSIBLE_FORCE_COLOR: '1' + stop-runner: + name: Stop self-hosted EC2 runner + needs: + - start-runner # required to get output from the start-runner job + - do-the-job # required to wait when the main job is done + runs-on: ubuntu-latest + if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Stop EC2 runner + uses: machulav/ec2-github-runner@v2 + with: + mode: stop + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + label: ${{ needs.start-runner.outputs.label }} + ec2-instance-id: ${{ needs.start-runner.outputs.ec2-instance-id }} \ No newline at end of file diff --git a/.github/workflows/main.yml b/.github/workflows/main_wazuh.yml similarity index 100% rename from .github/workflows/main.yml rename to .github/workflows/main_wazuh.yml From e263ffa0d191463add65106e627cd2223503a0e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Tue, 24 Jan 2023 10:19:13 -0300 Subject: [PATCH 08/25] AIO playbook fixed --- .github/playbooks/aio-wazuh.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/playbooks/aio-wazuh.yml b/.github/playbooks/aio-wazuh.yml index e89efbcb3..2b0820f7f 100644 --- a/.github/playbooks/aio-wazuh.yml +++ b/.github/playbooks/aio-wazuh.yml @@ -58,7 +58,6 @@ name: wazuh-mgr01 ip: "127.0.0.1" role: wazuh - node_type: master node5: name: wazuh-dash01 ip: "127.0.0.1" From 1032908b11a9eab1f3b56a3e285517b0f0fe2681 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Tue, 24 Jan 2023 10:23:23 -0300 Subject: [PATCH 09/25] AIO playbook fixed --- .github/playbooks/aio-wazuh.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/playbooks/aio-wazuh.yml b/.github/playbooks/aio-wazuh.yml index 2b0820f7f..8bd0d87a0 100644 --- a/.github/playbooks/aio-wazuh.yml +++ b/.github/playbooks/aio-wazuh.yml @@ -16,7 +16,6 @@ name: wazuh-mgr01 ip: "127.0.0.1" role: wazuh - node_type: master node5: name: wazuh-dash01 ip: "127.0.0.1" From 7fe5d56505e091da467dee687e391f5731a40798 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Tue, 24 Jan 2023 10:36:35 -0300 Subject: [PATCH 10/25] AIO playbook variables added --- .github/playbooks/aio-wazuh.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/playbooks/aio-wazuh.yml b/.github/playbooks/aio-wazuh.yml index 8bd0d87a0..f7f701a09 100644 --- a/.github/playbooks/aio-wazuh.yml +++ b/.github/playbooks/aio-wazuh.yml @@ -37,11 +37,19 @@ run_once: true # 2. Wazuh indexer - role: ../../roles/wazuh/wazuh-indexer + vars: + indexer_node_name: "wazuh-es01" # 3. Managers - role: ../../roles/wazuh/ansible-wazuh-manager - role: ../../roles/wazuh/ansible-filebeat-oss + vars: + dashboard_node_name: "wazuh-mgr01" + filebeat_output_indexer_hosts: + - "localhost:9200" # 4. Wazuh dashboard - role: ../../roles/wazuh/wazuh-dashboard + vars: + dashboard_node_name: "wazuh-dash01" # 5. Agents: # - role: ../../roles/wazuh/ansible-wazuh-agent # vars: From fab8ec23f1631811ddb490cb3951c5c2bf68bd30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Tue, 24 Jan 2023 10:45:44 -0300 Subject: [PATCH 11/25] AIO playbook single_node variable added --- .github/playbooks/aio-wazuh.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/playbooks/aio-wazuh.yml b/.github/playbooks/aio-wazuh.yml index f7f701a09..0ca954dfb 100644 --- a/.github/playbooks/aio-wazuh.yml +++ b/.github/playbooks/aio-wazuh.yml @@ -39,6 +39,7 @@ - role: ../../roles/wazuh/wazuh-indexer vars: indexer_node_name: "wazuh-es01" + single_node: true # 3. Managers - role: ../../roles/wazuh/ansible-wazuh-manager - role: ../../roles/wazuh/ansible-filebeat-oss From 789886d6d304d6c8f52daa9e8c397fa9ea40c466 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Tue, 24 Jan 2023 10:47:51 -0300 Subject: [PATCH 12/25] AIO playbook instance type modified --- .github/workflows/main_aio.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main_aio.yml b/.github/workflows/main_aio.yml index 31b4c3cf1..87c71b7bb 100644 --- a/.github/workflows/main_aio.yml +++ b/.github/workflows/main_aio.yml @@ -22,7 +22,7 @@ jobs: mode: start github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} ec2-image-id: ${{ secrets.CENTOS8_AMI_ID }} - ec2-instance-type: t3.small + ec2-instance-type: t3a.large subnet-id: ${{ secrets.SUBNET_ID }} security-group-id: ${{ secrets.SG_ID }} #iam-role-name: my-role-name # optional, requires additional permissions From e7f5c3175b2d117bc74200280f6f93e10c0b4c40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Tue, 24 Jan 2023 10:57:28 -0300 Subject: [PATCH 13/25] AIO playbook vars fixed --- .github/playbooks/aio-wazuh.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/playbooks/aio-wazuh.yml b/.github/playbooks/aio-wazuh.yml index 0ca954dfb..5063a837c 100644 --- a/.github/playbooks/aio-wazuh.yml +++ b/.github/playbooks/aio-wazuh.yml @@ -44,7 +44,7 @@ - role: ../../roles/wazuh/ansible-wazuh-manager - role: ../../roles/wazuh/ansible-filebeat-oss vars: - dashboard_node_name: "wazuh-mgr01" + filebeat_node_name: "wazuh-mgr01" filebeat_output_indexer_hosts: - "localhost:9200" # 4. Wazuh dashboard From 552b63cf662783737fb5bd18a3707b798f2bce73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Tue, 24 Jan 2023 12:24:09 -0300 Subject: [PATCH 14/25] Workflow updates --- .github/workflows/main_aio.yml | 13 ++++++------- .github/workflows/main_wazuh.yml | 13 ++++++------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/.github/workflows/main_aio.yml b/.github/workflows/main_aio.yml index 87c71b7bb..2e54c52c5 100644 --- a/.github/workflows/main_aio.yml +++ b/.github/workflows/main_aio.yml @@ -1,5 +1,5 @@ --- -name: do-the-job +name: AIO-Single-Instance on: [push, pull_request, workflow_dispatch, release] jobs: start-runner: @@ -25,14 +25,13 @@ jobs: ec2-instance-type: t3a.large subnet-id: ${{ secrets.SUBNET_ID }} security-group-id: ${{ secrets.SG_ID }} - #iam-role-name: my-role-name # optional, requires additional permissions aws-resource-tags: > # optional, requires additional permissions [ - {"Key": "Name", "Value": "ec2-github-runner"}, + {"Key": "Name", "Value": "wazuh-ansible-gh-runner-aio"}, {"Key": "GitHubRepository", "Value": "${{ github.repository }}"} ] - do-the-job: - name: Do the job on the runner + install-aio-single-instance: + name: Installs AIO single instance needs: start-runner # required to start the main job when the runner is ready runs-on: ${{ needs.start-runner.outputs.label }} # run the job on the newly created runner steps: @@ -47,7 +46,7 @@ jobs: uses: actions/setup-python@v2 with: python-version: '3.x' - - name: Ansible Playbook run Wazuh AIO + - name: Ansible Playbook run Wazuh AIO Single instance run: ansible-playbook ./.github/playbooks/aio-wazuh.yml env: PY_COLORS: '1' @@ -56,7 +55,7 @@ jobs: name: Stop self-hosted EC2 runner needs: - start-runner # required to get output from the start-runner job - - do-the-job # required to wait when the main job is done + - install-aio-single-instance # required to wait when the main job is done runs-on: ubuntu-latest if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs steps: diff --git a/.github/workflows/main_wazuh.yml b/.github/workflows/main_wazuh.yml index 7cd0a15cd..a6954a23d 100644 --- a/.github/workflows/main_wazuh.yml +++ b/.github/workflows/main_wazuh.yml @@ -1,5 +1,5 @@ --- -name: do-the-job +name: Wazuh-Single-Instance on: [push, pull_request, workflow_dispatch, release] jobs: start-runner: @@ -25,14 +25,13 @@ jobs: ec2-instance-type: t3.small subnet-id: ${{ secrets.SUBNET_ID }} security-group-id: ${{ secrets.SG_ID }} - #iam-role-name: my-role-name # optional, requires additional permissions aws-resource-tags: > # optional, requires additional permissions [ - {"Key": "Name", "Value": "ec2-github-runner"}, + {"Key": "Name", "Value": "wazuh-ansible-gh-runner-wazuh"}, {"Key": "GitHubRepository", "Value": "${{ github.repository }}"} ] - do-the-job: - name: Do the job on the runner + install-wazuh-single-instance: + name: Installs Wazuh server single instance needs: start-runner # required to start the main job when the runner is ready runs-on: ${{ needs.start-runner.outputs.label }} # run the job on the newly created runner steps: @@ -47,7 +46,7 @@ jobs: uses: actions/setup-python@v2 with: python-version: '3.x' - - name: Ansible Playbook run Wazuh Single node instance + - name: Ansible Playbook run Wazuh Single instance run: ansible-playbook ./.github/playbooks/single-wazuh.yml env: PY_COLORS: '1' @@ -56,7 +55,7 @@ jobs: name: Stop self-hosted EC2 runner needs: - start-runner # required to get output from the start-runner job - - do-the-job # required to wait when the main job is done + - install-wazuh-single-instance # required to wait when the main job is done runs-on: ubuntu-latest if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs steps: From 99f6fb41f46e412865f7d242e5bcc4e7788a5950 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Tue, 24 Jan 2023 15:11:45 -0300 Subject: [PATCH 15/25] GH Actions tags added to EC2 runners --- .github/workflows/main_aio.yml | 4 +++- .github/workflows/main_wazuh.yml | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main_aio.yml b/.github/workflows/main_aio.yml index 2e54c52c5..24532959f 100644 --- a/.github/workflows/main_aio.yml +++ b/.github/workflows/main_aio.yml @@ -28,7 +28,9 @@ jobs: aws-resource-tags: > # optional, requires additional permissions [ {"Key": "Name", "Value": "wazuh-ansible-gh-runner-aio"}, - {"Key": "GitHubRepository", "Value": "${{ github.repository }}"} + {"Key": "GitHubRepository", "Value": "${{ github.repository }}"}, + {"Key": "team", "Value": "CICD"}, + {"Key": "termination_Date", "Value": "N/A"} ] install-aio-single-instance: name: Installs AIO single instance diff --git a/.github/workflows/main_wazuh.yml b/.github/workflows/main_wazuh.yml index a6954a23d..747253926 100644 --- a/.github/workflows/main_wazuh.yml +++ b/.github/workflows/main_wazuh.yml @@ -28,7 +28,9 @@ jobs: aws-resource-tags: > # optional, requires additional permissions [ {"Key": "Name", "Value": "wazuh-ansible-gh-runner-wazuh"}, - {"Key": "GitHubRepository", "Value": "${{ github.repository }}"} + {"Key": "GitHubRepository", "Value": "${{ github.repository }}"}, + {"Key": "team", "Value": "CICD"}, + {"Key": "termination_Date", "Value": "N/A"} ] install-wazuh-single-instance: name: Installs Wazuh server single instance From 94fe0f303aa27126631f3811f1d8e2899049a0a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Wed, 25 Jan 2023 09:22:37 -0300 Subject: [PATCH 16/25] Ubuntu workflows added --- .github/workflows/centos_aio.yml | 76 ++++++++++++++++++++++++++++++ .github/workflows/centos_wazuh.yml | 76 ++++++++++++++++++++++++++++++ .github/workflows/ubuntu_aio.yml | 76 ++++++++++++++++++++++++++++++ .github/workflows/ubuntu_wazuh.yml | 76 ++++++++++++++++++++++++++++++ 4 files changed, 304 insertions(+) create mode 100644 .github/workflows/centos_aio.yml create mode 100644 .github/workflows/centos_wazuh.yml create mode 100644 .github/workflows/ubuntu_aio.yml create mode 100644 .github/workflows/ubuntu_wazuh.yml diff --git a/.github/workflows/centos_aio.yml b/.github/workflows/centos_aio.yml new file mode 100644 index 000000000..24532959f --- /dev/null +++ b/.github/workflows/centos_aio.yml @@ -0,0 +1,76 @@ +--- +name: AIO-Single-Instance +on: [push, pull_request, workflow_dispatch, release] +jobs: + start-runner: + name: Start self-hosted EC2 runner + runs-on: ubuntu-latest + outputs: + label: ${{ steps.start-ec2-runner.outputs.label }} + ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }} + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Start EC2 runner + id: start-ec2-runner + uses: machulav/ec2-github-runner@v2 + with: + mode: start + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + ec2-image-id: ${{ secrets.CENTOS8_AMI_ID }} + ec2-instance-type: t3a.large + subnet-id: ${{ secrets.SUBNET_ID }} + security-group-id: ${{ secrets.SG_ID }} + aws-resource-tags: > # optional, requires additional permissions + [ + {"Key": "Name", "Value": "wazuh-ansible-gh-runner-aio"}, + {"Key": "GitHubRepository", "Value": "${{ github.repository }}"}, + {"Key": "team", "Value": "CICD"}, + {"Key": "termination_Date", "Value": "N/A"} + ] + install-aio-single-instance: + name: Installs AIO single instance + needs: start-runner # required to start the main job when the runner is ready + runs-on: ${{ needs.start-runner.outputs.label }} # run the job on the newly created runner + steps: + - name: Check out the codebase. + uses: actions/checkout@v2 + - name: Hack to get setup-python to work on act. See act issue 251 + run: | + if [ ! -f "/etc/lsb-release" ] ; then + echo "DISTRIB_RELEASE=18.04" > /etc/lsb-release + fi + - name: Set up Python 3. + uses: actions/setup-python@v2 + with: + python-version: '3.x' + - name: Ansible Playbook run Wazuh AIO Single instance + run: ansible-playbook ./.github/playbooks/aio-wazuh.yml + env: + PY_COLORS: '1' + ANSIBLE_FORCE_COLOR: '1' + stop-runner: + name: Stop self-hosted EC2 runner + needs: + - start-runner # required to get output from the start-runner job + - install-aio-single-instance # required to wait when the main job is done + runs-on: ubuntu-latest + if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Stop EC2 runner + uses: machulav/ec2-github-runner@v2 + with: + mode: stop + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + label: ${{ needs.start-runner.outputs.label }} + ec2-instance-id: ${{ needs.start-runner.outputs.ec2-instance-id }} \ No newline at end of file diff --git a/.github/workflows/centos_wazuh.yml b/.github/workflows/centos_wazuh.yml new file mode 100644 index 000000000..747253926 --- /dev/null +++ b/.github/workflows/centos_wazuh.yml @@ -0,0 +1,76 @@ +--- +name: Wazuh-Single-Instance +on: [push, pull_request, workflow_dispatch, release] +jobs: + start-runner: + name: Start self-hosted EC2 runner + runs-on: ubuntu-latest + outputs: + label: ${{ steps.start-ec2-runner.outputs.label }} + ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }} + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Start EC2 runner + id: start-ec2-runner + uses: machulav/ec2-github-runner@v2 + with: + mode: start + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + ec2-image-id: ${{ secrets.CENTOS8_AMI_ID }} + ec2-instance-type: t3.small + subnet-id: ${{ secrets.SUBNET_ID }} + security-group-id: ${{ secrets.SG_ID }} + aws-resource-tags: > # optional, requires additional permissions + [ + {"Key": "Name", "Value": "wazuh-ansible-gh-runner-wazuh"}, + {"Key": "GitHubRepository", "Value": "${{ github.repository }}"}, + {"Key": "team", "Value": "CICD"}, + {"Key": "termination_Date", "Value": "N/A"} + ] + install-wazuh-single-instance: + name: Installs Wazuh server single instance + needs: start-runner # required to start the main job when the runner is ready + runs-on: ${{ needs.start-runner.outputs.label }} # run the job on the newly created runner + steps: + - name: Check out the codebase. + uses: actions/checkout@v2 + - name: Hack to get setup-python to work on act. See act issue 251 + run: | + if [ ! -f "/etc/lsb-release" ] ; then + echo "DISTRIB_RELEASE=18.04" > /etc/lsb-release + fi + - name: Set up Python 3. + uses: actions/setup-python@v2 + with: + python-version: '3.x' + - name: Ansible Playbook run Wazuh Single instance + run: ansible-playbook ./.github/playbooks/single-wazuh.yml + env: + PY_COLORS: '1' + ANSIBLE_FORCE_COLOR: '1' + stop-runner: + name: Stop self-hosted EC2 runner + needs: + - start-runner # required to get output from the start-runner job + - install-wazuh-single-instance # required to wait when the main job is done + runs-on: ubuntu-latest + if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Stop EC2 runner + uses: machulav/ec2-github-runner@v2 + with: + mode: stop + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + label: ${{ needs.start-runner.outputs.label }} + ec2-instance-id: ${{ needs.start-runner.outputs.ec2-instance-id }} \ No newline at end of file diff --git a/.github/workflows/ubuntu_aio.yml b/.github/workflows/ubuntu_aio.yml new file mode 100644 index 000000000..1469bdd43 --- /dev/null +++ b/.github/workflows/ubuntu_aio.yml @@ -0,0 +1,76 @@ +--- +name: AIO-Single-Instance +on: [push, pull_request, workflow_dispatch, release] +jobs: + start-runner: + name: Start self-hosted EC2 runner + runs-on: ubuntu-latest + outputs: + label: ${{ steps.start-ec2-runner.outputs.label }} + ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }} + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Start EC2 runner + id: start-ec2-runner + uses: machulav/ec2-github-runner@v2 + with: + mode: start + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + ec2-image-id: ${{ secrets.UBUNTU2204_AMI_ID }} + ec2-instance-type: t3a.large + subnet-id: ${{ secrets.SUBNET_ID }} + security-group-id: ${{ secrets.SG_ID }} + aws-resource-tags: > # optional, requires additional permissions + [ + {"Key": "Name", "Value": "wazuh-ansible-gh-runner-aio"}, + {"Key": "GitHubRepository", "Value": "${{ github.repository }}"}, + {"Key": "team", "Value": "CICD"}, + {"Key": "termination_Date", "Value": "N/A"} + ] + install-aio-single-instance: + name: Installs AIO single instance + needs: start-runner # required to start the main job when the runner is ready + runs-on: ${{ needs.start-runner.outputs.label }} # run the job on the newly created runner + steps: + - name: Check out the codebase. + uses: actions/checkout@v2 + - name: Hack to get setup-python to work on act. See act issue 251 + run: | + if [ ! -f "/etc/lsb-release" ] ; then + echo "DISTRIB_RELEASE=18.04" > /etc/lsb-release + fi + - name: Set up Python 3. + uses: actions/setup-python@v2 + with: + python-version: '3.x' + - name: Ansible Playbook run Wazuh AIO Single instance + run: ansible-playbook ./.github/playbooks/aio-wazuh.yml + env: + PY_COLORS: '1' + ANSIBLE_FORCE_COLOR: '1' + stop-runner: + name: Stop self-hosted EC2 runner + needs: + - start-runner # required to get output from the start-runner job + - install-aio-single-instance # required to wait when the main job is done + runs-on: ubuntu-latest + if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Stop EC2 runner + uses: machulav/ec2-github-runner@v2 + with: + mode: stop + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + label: ${{ needs.start-runner.outputs.label }} + ec2-instance-id: ${{ needs.start-runner.outputs.ec2-instance-id }} \ No newline at end of file diff --git a/.github/workflows/ubuntu_wazuh.yml b/.github/workflows/ubuntu_wazuh.yml new file mode 100644 index 000000000..dd388dd0a --- /dev/null +++ b/.github/workflows/ubuntu_wazuh.yml @@ -0,0 +1,76 @@ +--- +name: Wazuh-Single-Instance +on: [push, pull_request, workflow_dispatch, release] +jobs: + start-runner: + name: Start self-hosted EC2 runner + runs-on: ubuntu-latest + outputs: + label: ${{ steps.start-ec2-runner.outputs.label }} + ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }} + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Start EC2 runner + id: start-ec2-runner + uses: machulav/ec2-github-runner@v2 + with: + mode: start + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + ec2-image-id: ${{ secrets.UBUNTU2204_AMI_ID }} + ec2-instance-type: t3.small + subnet-id: ${{ secrets.SUBNET_ID }} + security-group-id: ${{ secrets.SG_ID }} + aws-resource-tags: > # optional, requires additional permissions + [ + {"Key": "Name", "Value": "wazuh-ansible-gh-runner-wazuh"}, + {"Key": "GitHubRepository", "Value": "${{ github.repository }}"}, + {"Key": "team", "Value": "CICD"}, + {"Key": "termination_Date", "Value": "N/A"} + ] + install-wazuh-single-instance: + name: Installs Wazuh server single instance + needs: start-runner # required to start the main job when the runner is ready + runs-on: ${{ needs.start-runner.outputs.label }} # run the job on the newly created runner + steps: + - name: Check out the codebase. + uses: actions/checkout@v2 + - name: Hack to get setup-python to work on act. See act issue 251 + run: | + if [ ! -f "/etc/lsb-release" ] ; then + echo "DISTRIB_RELEASE=18.04" > /etc/lsb-release + fi + - name: Set up Python 3. + uses: actions/setup-python@v2 + with: + python-version: '3.x' + - name: Ansible Playbook run Wazuh Single instance + run: ansible-playbook ./.github/playbooks/single-wazuh.yml + env: + PY_COLORS: '1' + ANSIBLE_FORCE_COLOR: '1' + stop-runner: + name: Stop self-hosted EC2 runner + needs: + - start-runner # required to get output from the start-runner job + - install-wazuh-single-instance # required to wait when the main job is done + runs-on: ubuntu-latest + if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Stop EC2 runner + uses: machulav/ec2-github-runner@v2 + with: + mode: stop + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + label: ${{ needs.start-runner.outputs.label }} + ec2-instance-id: ${{ needs.start-runner.outputs.ec2-instance-id }} \ No newline at end of file From fe82b8b55859651211bbc2e245669a4dffe0716e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Wed, 25 Jan 2023 09:24:20 -0300 Subject: [PATCH 17/25] Old workflows removed --- .github/workflows/main_aio.yml | 76 -------------------------------- .github/workflows/main_wazuh.yml | 76 -------------------------------- 2 files changed, 152 deletions(-) delete mode 100644 .github/workflows/main_aio.yml delete mode 100644 .github/workflows/main_wazuh.yml diff --git a/.github/workflows/main_aio.yml b/.github/workflows/main_aio.yml deleted file mode 100644 index 24532959f..000000000 --- a/.github/workflows/main_aio.yml +++ /dev/null @@ -1,76 +0,0 @@ ---- -name: AIO-Single-Instance -on: [push, pull_request, workflow_dispatch, release] -jobs: - start-runner: - name: Start self-hosted EC2 runner - runs-on: ubuntu-latest - outputs: - label: ${{ steps.start-ec2-runner.outputs.label }} - ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }} - steps: - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_REGION }} - - name: Start EC2 runner - id: start-ec2-runner - uses: machulav/ec2-github-runner@v2 - with: - mode: start - github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} - ec2-image-id: ${{ secrets.CENTOS8_AMI_ID }} - ec2-instance-type: t3a.large - subnet-id: ${{ secrets.SUBNET_ID }} - security-group-id: ${{ secrets.SG_ID }} - aws-resource-tags: > # optional, requires additional permissions - [ - {"Key": "Name", "Value": "wazuh-ansible-gh-runner-aio"}, - {"Key": "GitHubRepository", "Value": "${{ github.repository }}"}, - {"Key": "team", "Value": "CICD"}, - {"Key": "termination_Date", "Value": "N/A"} - ] - install-aio-single-instance: - name: Installs AIO single instance - needs: start-runner # required to start the main job when the runner is ready - runs-on: ${{ needs.start-runner.outputs.label }} # run the job on the newly created runner - steps: - - name: Check out the codebase. - uses: actions/checkout@v2 - - name: Hack to get setup-python to work on act. See act issue 251 - run: | - if [ ! -f "/etc/lsb-release" ] ; then - echo "DISTRIB_RELEASE=18.04" > /etc/lsb-release - fi - - name: Set up Python 3. - uses: actions/setup-python@v2 - with: - python-version: '3.x' - - name: Ansible Playbook run Wazuh AIO Single instance - run: ansible-playbook ./.github/playbooks/aio-wazuh.yml - env: - PY_COLORS: '1' - ANSIBLE_FORCE_COLOR: '1' - stop-runner: - name: Stop self-hosted EC2 runner - needs: - - start-runner # required to get output from the start-runner job - - install-aio-single-instance # required to wait when the main job is done - runs-on: ubuntu-latest - if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs - steps: - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_REGION }} - - name: Stop EC2 runner - uses: machulav/ec2-github-runner@v2 - with: - mode: stop - github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} - label: ${{ needs.start-runner.outputs.label }} - ec2-instance-id: ${{ needs.start-runner.outputs.ec2-instance-id }} \ No newline at end of file diff --git a/.github/workflows/main_wazuh.yml b/.github/workflows/main_wazuh.yml deleted file mode 100644 index 747253926..000000000 --- a/.github/workflows/main_wazuh.yml +++ /dev/null @@ -1,76 +0,0 @@ ---- -name: Wazuh-Single-Instance -on: [push, pull_request, workflow_dispatch, release] -jobs: - start-runner: - name: Start self-hosted EC2 runner - runs-on: ubuntu-latest - outputs: - label: ${{ steps.start-ec2-runner.outputs.label }} - ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }} - steps: - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_REGION }} - - name: Start EC2 runner - id: start-ec2-runner - uses: machulav/ec2-github-runner@v2 - with: - mode: start - github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} - ec2-image-id: ${{ secrets.CENTOS8_AMI_ID }} - ec2-instance-type: t3.small - subnet-id: ${{ secrets.SUBNET_ID }} - security-group-id: ${{ secrets.SG_ID }} - aws-resource-tags: > # optional, requires additional permissions - [ - {"Key": "Name", "Value": "wazuh-ansible-gh-runner-wazuh"}, - {"Key": "GitHubRepository", "Value": "${{ github.repository }}"}, - {"Key": "team", "Value": "CICD"}, - {"Key": "termination_Date", "Value": "N/A"} - ] - install-wazuh-single-instance: - name: Installs Wazuh server single instance - needs: start-runner # required to start the main job when the runner is ready - runs-on: ${{ needs.start-runner.outputs.label }} # run the job on the newly created runner - steps: - - name: Check out the codebase. - uses: actions/checkout@v2 - - name: Hack to get setup-python to work on act. See act issue 251 - run: | - if [ ! -f "/etc/lsb-release" ] ; then - echo "DISTRIB_RELEASE=18.04" > /etc/lsb-release - fi - - name: Set up Python 3. - uses: actions/setup-python@v2 - with: - python-version: '3.x' - - name: Ansible Playbook run Wazuh Single instance - run: ansible-playbook ./.github/playbooks/single-wazuh.yml - env: - PY_COLORS: '1' - ANSIBLE_FORCE_COLOR: '1' - stop-runner: - name: Stop self-hosted EC2 runner - needs: - - start-runner # required to get output from the start-runner job - - install-wazuh-single-instance # required to wait when the main job is done - runs-on: ubuntu-latest - if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs - steps: - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_REGION }} - - name: Stop EC2 runner - uses: machulav/ec2-github-runner@v2 - with: - mode: stop - github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} - label: ${{ needs.start-runner.outputs.label }} - ec2-instance-id: ${{ needs.start-runner.outputs.ec2-instance-id }} \ No newline at end of file From 68b522faec50b8f2cd0874b9e7a7b306f58f8323 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Wed, 25 Jan 2023 09:25:50 -0300 Subject: [PATCH 18/25] Workflow names updated --- .github/workflows/centos_aio.yml | 2 +- .github/workflows/centos_wazuh.yml | 2 +- .github/workflows/ubuntu_aio.yml | 2 +- .github/workflows/ubuntu_wazuh.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/centos_aio.yml b/.github/workflows/centos_aio.yml index 24532959f..5577cfe66 100644 --- a/.github/workflows/centos_aio.yml +++ b/.github/workflows/centos_aio.yml @@ -1,5 +1,5 @@ --- -name: AIO-Single-Instance +name: AIO-CentOS-Single-Instance on: [push, pull_request, workflow_dispatch, release] jobs: start-runner: diff --git a/.github/workflows/centos_wazuh.yml b/.github/workflows/centos_wazuh.yml index 747253926..dc28cc285 100644 --- a/.github/workflows/centos_wazuh.yml +++ b/.github/workflows/centos_wazuh.yml @@ -1,5 +1,5 @@ --- -name: Wazuh-Single-Instance +name: Wazuh-CentOS-Single-Instance on: [push, pull_request, workflow_dispatch, release] jobs: start-runner: diff --git a/.github/workflows/ubuntu_aio.yml b/.github/workflows/ubuntu_aio.yml index 1469bdd43..af18bb6fd 100644 --- a/.github/workflows/ubuntu_aio.yml +++ b/.github/workflows/ubuntu_aio.yml @@ -1,5 +1,5 @@ --- -name: AIO-Single-Instance +name: AIO-Ubuntu-Single-Instance on: [push, pull_request, workflow_dispatch, release] jobs: start-runner: diff --git a/.github/workflows/ubuntu_wazuh.yml b/.github/workflows/ubuntu_wazuh.yml index dd388dd0a..7a075ba5a 100644 --- a/.github/workflows/ubuntu_wazuh.yml +++ b/.github/workflows/ubuntu_wazuh.yml @@ -1,5 +1,5 @@ --- -name: Wazuh-Single-Instance +name: Wazuh-Ubuntu-Single-Instance on: [push, pull_request, workflow_dispatch, release] jobs: start-runner: From 88d97b88f7d0e0d120232e87384e1d6a85f0ee11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Wed, 25 Jan 2023 11:19:03 -0300 Subject: [PATCH 19/25] AL2 workflows added --- .github/workflows/al_aio.yml | 76 ++++++++++++++++++++++++++++++++++ .github/workflows/al_wazuh.yml | 76 ++++++++++++++++++++++++++++++++++ 2 files changed, 152 insertions(+) create mode 100644 .github/workflows/al_aio.yml create mode 100644 .github/workflows/al_wazuh.yml diff --git a/.github/workflows/al_aio.yml b/.github/workflows/al_aio.yml new file mode 100644 index 000000000..4a833adc1 --- /dev/null +++ b/.github/workflows/al_aio.yml @@ -0,0 +1,76 @@ +--- +name: AIO-AL-Single-Instance +on: [push, pull_request, workflow_dispatch, release] +jobs: + start-runner: + name: Start self-hosted EC2 runner + runs-on: ubuntu-latest + outputs: + label: ${{ steps.start-ec2-runner.outputs.label }} + ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }} + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Start EC2 runner + id: start-ec2-runner + uses: machulav/ec2-github-runner@v2 + with: + mode: start + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + ec2-image-id: ${{ secrets.AL2_AMI_ID }} + ec2-instance-type: t3a.large + subnet-id: ${{ secrets.SUBNET_ID }} + security-group-id: ${{ secrets.SG_ID }} + aws-resource-tags: > # optional, requires additional permissions + [ + {"Key": "Name", "Value": "wazuh-ansible-gh-runner-aio"}, + {"Key": "GitHubRepository", "Value": "${{ github.repository }}"}, + {"Key": "team", "Value": "CICD"}, + {"Key": "termination_Date", "Value": "N/A"} + ] + install-aio-single-instance: + name: Installs AIO single instance + needs: start-runner # required to start the main job when the runner is ready + runs-on: ${{ needs.start-runner.outputs.label }} # run the job on the newly created runner + steps: + - name: Check out the codebase. + uses: actions/checkout@v2 + - name: Hack to get setup-python to work on act. See act issue 251 + run: | + if [ ! -f "/etc/lsb-release" ] ; then + echo "DISTRIB_RELEASE=18.04" > /etc/lsb-release + fi + - name: Set up Python 3. + uses: actions/setup-python@v2 + with: + python-version: '3.x' + - name: Ansible Playbook run Wazuh AIO Single instance + run: ansible-playbook ./.github/playbooks/aio-wazuh.yml + env: + PY_COLORS: '1' + ANSIBLE_FORCE_COLOR: '1' + stop-runner: + name: Stop self-hosted EC2 runner + needs: + - start-runner # required to get output from the start-runner job + - install-aio-single-instance # required to wait when the main job is done + runs-on: ubuntu-latest + if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Stop EC2 runner + uses: machulav/ec2-github-runner@v2 + with: + mode: stop + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + label: ${{ needs.start-runner.outputs.label }} + ec2-instance-id: ${{ needs.start-runner.outputs.ec2-instance-id }} \ No newline at end of file diff --git a/.github/workflows/al_wazuh.yml b/.github/workflows/al_wazuh.yml new file mode 100644 index 000000000..c0e573da3 --- /dev/null +++ b/.github/workflows/al_wazuh.yml @@ -0,0 +1,76 @@ +--- +name: Wazuh-AL-Single-Instance +on: [push, pull_request, workflow_dispatch, release] +jobs: + start-runner: + name: Start self-hosted EC2 runner + runs-on: ubuntu-latest + outputs: + label: ${{ steps.start-ec2-runner.outputs.label }} + ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }} + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Start EC2 runner + id: start-ec2-runner + uses: machulav/ec2-github-runner@v2 + with: + mode: start + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + ec2-image-id: ${{ secrets.AL2_AMI_ID }} + ec2-instance-type: t3.small + subnet-id: ${{ secrets.SUBNET_ID }} + security-group-id: ${{ secrets.SG_ID }} + aws-resource-tags: > # optional, requires additional permissions + [ + {"Key": "Name", "Value": "wazuh-ansible-gh-runner-wazuh"}, + {"Key": "GitHubRepository", "Value": "${{ github.repository }}"}, + {"Key": "team", "Value": "CICD"}, + {"Key": "termination_Date", "Value": "N/A"} + ] + install-wazuh-single-instance: + name: Installs Wazuh server single instance + needs: start-runner # required to start the main job when the runner is ready + runs-on: ${{ needs.start-runner.outputs.label }} # run the job on the newly created runner + steps: + - name: Check out the codebase. + uses: actions/checkout@v2 + - name: Hack to get setup-python to work on act. See act issue 251 + run: | + if [ ! -f "/etc/lsb-release" ] ; then + echo "DISTRIB_RELEASE=18.04" > /etc/lsb-release + fi + - name: Set up Python 3. + uses: actions/setup-python@v2 + with: + python-version: '3.x' + - name: Ansible Playbook run Wazuh Single instance + run: ansible-playbook ./.github/playbooks/single-wazuh.yml + env: + PY_COLORS: '1' + ANSIBLE_FORCE_COLOR: '1' + stop-runner: + name: Stop self-hosted EC2 runner + needs: + - start-runner # required to get output from the start-runner job + - install-wazuh-single-instance # required to wait when the main job is done + runs-on: ubuntu-latest + if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Stop EC2 runner + uses: machulav/ec2-github-runner@v2 + with: + mode: stop + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + label: ${{ needs.start-runner.outputs.label }} + ec2-instance-id: ${{ needs.start-runner.outputs.ec2-instance-id }} \ No newline at end of file From a5da15b3371c2169f0f37be9205652b04dc19989 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Wed, 25 Jan 2023 11:42:09 -0300 Subject: [PATCH 20/25] AL2 removed some steps --- .github/workflows/al_aio.yml | 9 --------- .github/workflows/al_wazuh.yml | 9 --------- 2 files changed, 18 deletions(-) diff --git a/.github/workflows/al_aio.yml b/.github/workflows/al_aio.yml index 4a833adc1..a3a22b66c 100644 --- a/.github/workflows/al_aio.yml +++ b/.github/workflows/al_aio.yml @@ -39,15 +39,6 @@ jobs: steps: - name: Check out the codebase. uses: actions/checkout@v2 - - name: Hack to get setup-python to work on act. See act issue 251 - run: | - if [ ! -f "/etc/lsb-release" ] ; then - echo "DISTRIB_RELEASE=18.04" > /etc/lsb-release - fi - - name: Set up Python 3. - uses: actions/setup-python@v2 - with: - python-version: '3.x' - name: Ansible Playbook run Wazuh AIO Single instance run: ansible-playbook ./.github/playbooks/aio-wazuh.yml env: diff --git a/.github/workflows/al_wazuh.yml b/.github/workflows/al_wazuh.yml index c0e573da3..6823fb149 100644 --- a/.github/workflows/al_wazuh.yml +++ b/.github/workflows/al_wazuh.yml @@ -39,15 +39,6 @@ jobs: steps: - name: Check out the codebase. uses: actions/checkout@v2 - - name: Hack to get setup-python to work on act. See act issue 251 - run: | - if [ ! -f "/etc/lsb-release" ] ; then - echo "DISTRIB_RELEASE=18.04" > /etc/lsb-release - fi - - name: Set up Python 3. - uses: actions/setup-python@v2 - with: - python-version: '3.x' - name: Ansible Playbook run Wazuh Single instance run: ansible-playbook ./.github/playbooks/single-wazuh.yml env: From 31daf3168c50ca2b4f5ddddf9e7f9172db6adc38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Wed, 25 Jan 2023 11:56:24 -0300 Subject: [PATCH 21/25] Push actions removed from workflows --- .github/workflows/al_aio.yml | 2 +- .github/workflows/al_wazuh.yml | 2 +- .github/workflows/centos_aio.yml | 2 +- .github/workflows/centos_wazuh.yml | 2 +- .github/workflows/ubuntu_aio.yml | 2 +- .github/workflows/ubuntu_wazuh.yml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/al_aio.yml b/.github/workflows/al_aio.yml index a3a22b66c..6e8f2a684 100644 --- a/.github/workflows/al_aio.yml +++ b/.github/workflows/al_aio.yml @@ -1,6 +1,6 @@ --- name: AIO-AL-Single-Instance -on: [push, pull_request, workflow_dispatch, release] +on: [pull_request, workflow_dispatch, release] jobs: start-runner: name: Start self-hosted EC2 runner diff --git a/.github/workflows/al_wazuh.yml b/.github/workflows/al_wazuh.yml index 6823fb149..c5405f13c 100644 --- a/.github/workflows/al_wazuh.yml +++ b/.github/workflows/al_wazuh.yml @@ -1,6 +1,6 @@ --- name: Wazuh-AL-Single-Instance -on: [push, pull_request, workflow_dispatch, release] +on: [pull_request, workflow_dispatch, release] jobs: start-runner: name: Start self-hosted EC2 runner diff --git a/.github/workflows/centos_aio.yml b/.github/workflows/centos_aio.yml index 5577cfe66..601934e34 100644 --- a/.github/workflows/centos_aio.yml +++ b/.github/workflows/centos_aio.yml @@ -1,6 +1,6 @@ --- name: AIO-CentOS-Single-Instance -on: [push, pull_request, workflow_dispatch, release] +on: [pull_request, workflow_dispatch, release] jobs: start-runner: name: Start self-hosted EC2 runner diff --git a/.github/workflows/centos_wazuh.yml b/.github/workflows/centos_wazuh.yml index dc28cc285..43221a650 100644 --- a/.github/workflows/centos_wazuh.yml +++ b/.github/workflows/centos_wazuh.yml @@ -1,6 +1,6 @@ --- name: Wazuh-CentOS-Single-Instance -on: [push, pull_request, workflow_dispatch, release] +on: [pull_request, workflow_dispatch, release] jobs: start-runner: name: Start self-hosted EC2 runner diff --git a/.github/workflows/ubuntu_aio.yml b/.github/workflows/ubuntu_aio.yml index af18bb6fd..0cf475734 100644 --- a/.github/workflows/ubuntu_aio.yml +++ b/.github/workflows/ubuntu_aio.yml @@ -1,6 +1,6 @@ --- name: AIO-Ubuntu-Single-Instance -on: [push, pull_request, workflow_dispatch, release] +on: [pull_request, workflow_dispatch, release] jobs: start-runner: name: Start self-hosted EC2 runner diff --git a/.github/workflows/ubuntu_wazuh.yml b/.github/workflows/ubuntu_wazuh.yml index 7a075ba5a..b7542e27b 100644 --- a/.github/workflows/ubuntu_wazuh.yml +++ b/.github/workflows/ubuntu_wazuh.yml @@ -1,6 +1,6 @@ --- name: Wazuh-Ubuntu-Single-Instance -on: [push, pull_request, workflow_dispatch, release] +on: [pull_request, workflow_dispatch, release] jobs: start-runner: name: Start self-hosted EC2 runner From bc12f410de14b4666b00e07e0175e764fe7cd65c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Wed, 25 Jan 2023 12:42:39 -0300 Subject: [PATCH 22/25] Remove backup yaml --- .github/workflows/main.yml.bkp | 70 ---------------------------------- 1 file changed, 70 deletions(-) delete mode 100644 .github/workflows/main.yml.bkp diff --git a/.github/workflows/main.yml.bkp b/.github/workflows/main.yml.bkp deleted file mode 100644 index ed4a151b6..000000000 --- a/.github/workflows/main.yml.bkp +++ /dev/null @@ -1,70 +0,0 @@ ---- -name: do-the-job -on: [push, pull_request, workflow_dispatch, release] -jobs: - start-runner: - name: Start self-hosted EC2 runner - runs-on: ubuntu-latest - outputs: - label: ${{ steps.start-ec2-runner.outputs.label }} - ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }} - steps: - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_REGION }} - - name: Start EC2 runner - id: start-ec2-runner - uses: machulav/ec2-github-runner@v2 - with: - mode: start - github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} - ec2-image-id: ${{ secrets.CENTOS8_AMI_ID }} - ec2-instance-type: t3.small - subnet-id: ${{ secrets.SUBNET_ID }} - security-group-id: ${{ secrets.SG_ID }} - #iam-role-name: my-role-name # optional, requires additional permissions - aws-resource-tags: > # optional, requires additional permissions - [ - {"Key": "Name", "Value": "ec2-github-runner"}, - {"Key": "GitHubRepository", "Value": "${{ github.repository }}"} - ] - do-the-job: - name: Do the job on the runner - needs: start-runner # required to start the main job when the runner is ready - runs-on: ${{ needs.start-runner.outputs.label }} # run the job on the newly created runner - steps: - - name: Check out the codebase. - uses: actions/checkout@v2 - - name: Hack to get setup-python to work on act. See act issue 251 - run: | - if [ ! -f "/etc/lsb-release" ] ; then - echo "DISTRIB_RELEASE=18.04" > /etc/lsb-release - fi - - name: Set up Python 3. - uses: actions/setup-python@v2 - with: - python-version: '3.x' - stop-runner: - name: Stop self-hosted EC2 runner - needs: - - start-runner # required to get output from the start-runner job - - do-the-job # required to wait when the main job is done - runs-on: ubuntu-latest - if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs - steps: - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_REGION }} - - name: Stop EC2 runner - uses: machulav/ec2-github-runner@v2 - with: - mode: stop - github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} - label: ${{ needs.start-runner.outputs.label }} - ec2-instance-id: ${{ needs.start-runner.outputs.ec2-instance-id }} \ No newline at end of file From ea9b073973a5737beba22be117033f47d71ecd89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Thu, 26 Jan 2023 10:56:56 -0300 Subject: [PATCH 23/25] Comments removed --- .github/playbooks/aio-wazuh.yml | 5 ----- .github/playbooks/single-wazuh.yml | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/playbooks/aio-wazuh.yml b/.github/playbooks/aio-wazuh.yml index 5063a837c..099f5876f 100644 --- a/.github/playbooks/aio-wazuh.yml +++ b/.github/playbooks/aio-wazuh.yml @@ -51,11 +51,6 @@ - role: ../../roles/wazuh/wazuh-dashboard vars: dashboard_node_name: "wazuh-dash01" - # 5. Agents: -# - role: ../../roles/wazuh/ansible-wazuh-agent -# vars: -# wazuh_managers: '{{ wazuh_managers_list }}' -# when: inventory_hostname in groups['agents'] vars: instances: node1: diff --git a/.github/playbooks/single-wazuh.yml b/.github/playbooks/single-wazuh.yml index b3b3b7afd..5f55a22b7 100644 --- a/.github/playbooks/single-wazuh.yml +++ b/.github/playbooks/single-wazuh.yml @@ -25,7 +25,7 @@ vars: - role: ../../roles/wazuh/ansible-filebeat-oss vars: - - filebeat_output_indexer_hosts: + filebeat_output_indexer_hosts: - "indexer_centos7:9200" pre_tasks: - name: (converge) fix missing packages in cloud images From 01d73de4237f1941aa54320a5a1dded2f2c6d13a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Wed, 1 Feb 2023 09:33:02 -0300 Subject: [PATCH 24/25] Old workflow files deleted --- .github/dependabot.yml | 12 - molecule/default/INSTALL.rst | 16 - molecule/default/converge.yml | 35 - molecule/default/molecule.yml | 69 - molecule/default/tests/test_default.py | 65 - .../group_vars/all.yml | 36 - .../tests/test_default.py | 64 - .../distributed-wazuh-elk/group_vars/all.yml | 23 - .../distributed-wazuh-odfe/group_vars/all.yml | 47 - .../tests/test_default.py | 64 - molecule/distributed-wazuh/INSTALL.rst | 16 - molecule/distributed-wazuh/converge.yml | 126 -- .../distributed-wazuh/group_vars/agents.yml | 24 - molecule/distributed-wazuh/group_vars/all.yml | 39 - .../group_vars/dashboard.yml | 16 - .../distributed-wazuh/group_vars/indexer.yml | 13 - .../distributed-wazuh/group_vars/managers.yml | 21 - molecule/distributed-wazuh/molecule.yml | 162 -- .../distributed-wazuh/tests/test_default.py | 64 - poetry.lock | 1342 ----------------- pyproject.toml | 28 - 21 files changed, 2282 deletions(-) delete mode 100644 .github/dependabot.yml delete mode 100644 molecule/default/INSTALL.rst delete mode 100644 molecule/default/converge.yml delete mode 100644 molecule/default/molecule.yml delete mode 100644 molecule/default/tests/test_default.py delete mode 100644 molecule/distributed-wazuh-elk-xpack/group_vars/all.yml delete mode 100644 molecule/distributed-wazuh-elk-xpack/tests/test_default.py delete mode 100644 molecule/distributed-wazuh-elk/group_vars/all.yml delete mode 100644 molecule/distributed-wazuh-odfe/group_vars/all.yml delete mode 100644 molecule/distributed-wazuh-odfe/tests/test_default.py delete mode 100644 molecule/distributed-wazuh/INSTALL.rst delete mode 100644 molecule/distributed-wazuh/converge.yml delete mode 100644 molecule/distributed-wazuh/group_vars/agents.yml delete mode 100644 molecule/distributed-wazuh/group_vars/all.yml delete mode 100644 molecule/distributed-wazuh/group_vars/dashboard.yml delete mode 100644 molecule/distributed-wazuh/group_vars/indexer.yml delete mode 100644 molecule/distributed-wazuh/group_vars/managers.yml delete mode 100644 molecule/distributed-wazuh/molecule.yml delete mode 100644 molecule/distributed-wazuh/tests/test_default.py delete mode 100644 poetry.lock delete mode 100644 pyproject.toml diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 5dcc0e82d..000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,12 +0,0 @@ -# To get started with Dependabot version updates, you'll need to specify which -# package ecosystems to update and where the package manifests are located. -# Please see the documentation for all configuration options: -# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates - -version: 2 -updates: - - package-ecosystem: "pip" # See documentation for possible values - directory: "/" # Location of package manifests - schedule: - interval: "daily" - target-branch: "4.4" diff --git a/molecule/default/INSTALL.rst b/molecule/default/INSTALL.rst deleted file mode 100644 index e26493b8b..000000000 --- a/molecule/default/INSTALL.rst +++ /dev/null @@ -1,16 +0,0 @@ -******* -Install -******* - -Requirements -============ - -* Docker Engine -* docker-py - -Install -======= - -.. code-block:: bash - - $ sudo pip install docker-py diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml deleted file mode 100644 index 17a84ecdf..000000000 --- a/molecule/default/converge.yml +++ /dev/null @@ -1,35 +0,0 @@ ---- -- name: ConvergeCerts - hosts: localhost - roles: - - role: ../../roles/wazuh/wazuh-indexer - perform_installation: false - vars: - instances: - node1: - name: node-1 # Important: must be equal to indexer_node_name. - ip: 127.0.0.1 - role: indexer - tags: - - generate-certs -- name: ConvergeInstall - hosts: all - roles: - # 1. Check packages - - role: ../../roles/wazuh/check-packages - become: no - delegate_to: localhost - run_once: true - # 2. Managers - - role: ../../roles/wazuh/ansible-wazuh-manager - vars: - - { role: ../../roles/wazuh/ansible-filebeat-oss, filebeat_output_indexer_hosts: "indexer_centos7:9200" } - pre_tasks: - - name: (converge) fix missing packages in cloud images - apt: - name: - - unzip - - gpg-agent - state: present - update_cache: yes - when: ansible_distribution == "Ubuntu" \ No newline at end of file diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml deleted file mode 100644 index 3e21dce24..000000000 --- a/molecule/default/molecule.yml +++ /dev/null @@ -1,69 +0,0 @@ ---- -# Smoke test: basic manager run -dependency: - name: galaxy -driver: - name: docker -lint: | - yamllint . - ansible-lint roles - flake8 molecule -platforms: - - name: wazuh_manager_centos7 - hostname: wazuh-mgr01 - image: geerlingguy/docker-centos7-ansible - command: /sbin/init - pre_build_image: true - privileged: true - memory_reservation: 512m - memory: 1024m - ulimits: - - nofile:262144:262144 - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - - - name: wazuh_manager_debian9 - hostname: wazuh-mgr02 - image: geerlingguy/docker-debian9-ansible - command: /sbin/init - pre_build_image: true - privileged: true - memory_reservation: 512m - memory: 1024m - groups: - - managers - ulimits: - - nofile:262144:262144 - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - -provisioner: - name: ansible - ansible_args: - - -vv - config_options: - defaults: - hash_behaviour: merge - playbooks: - create: create.yml - converge: converge.yml - #destroy: destroy.yml - env: - ANSIBLE_ROLES_PATH: ./roles - lint: - name: ansible-lint - enabled: false -scenario: - name: default - test_sequence: - - dependency - - syntax - - create - - prepare - - converge - #- idempotence - #- verify - - cleanup - - destroy -verifier: - name: testinfra diff --git a/molecule/default/tests/test_default.py b/molecule/default/tests/test_default.py deleted file mode 100644 index 2769e498e..000000000 --- a/molecule/default/tests/test_default.py +++ /dev/null @@ -1,65 +0,0 @@ -import os -import pytest -import testinfra.utils.ansible_runner - -testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( - os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all') - - -def get_wazuh_version(): - """This return the version of Wazuh.""" - return "4.4.0" - - - -def test_wazuh_packages_are_installed(host): - """Test the main packages are installed.""" - manager = host.package("wazuh-manager") - assert manager.is_installed - assert manager.version.startswith(get_wazuh_version()) - - -def test_wazuh_services_are_running(host): - """Test the services are enabled and running. - - When assert commands are commented, this means that the service command has - a wrong exit code: https://github.com/wazuh/wazuh-ansible/issues/107 - """ - # This currently doesn't work with out current Docker base images - # manager = host.service("wazuh-manager") - # api = host.service("wazuh-api") - # assert manager.is_running - # assert api.is_running - output = host.check_output( - 'ps aux | grep ossec | tr -s " " | cut -d" " -f11' - ) - assert 'ossec-authd' in output - assert 'wazuh-modulesd' in output - assert 'wazuh-db' in output - assert 'ossec-execd' in output - assert 'ossec-monitord' in output - assert 'ossec-remoted' in output - assert 'ossec-logcollector' in output - assert 'ossec-analysisd' in output - assert 'ossec-syscheckd' in output - - -@pytest.mark.parametrize("wazuh_file, wazuh_owner, wazuh_group, wazuh_mode", [ - ("/var/ossec/etc/sslmanager.cert", "root", "root", 0o640), - ("/var/ossec/etc/sslmanager.key", "root", "root", 0o640), - ("/var/ossec/etc/rules/local_rules.xml", "wazuh", "wazuh", 0o640), - ("/var/ossec/etc/lists/audit-keys", "wazuh", "wazuh", 0o660), -]) -def test_wazuh_files(host, wazuh_file, wazuh_owner, wazuh_group, wazuh_mode): - """Test Wazuh related files exist and have proper owners and mode.""" - wazuh_file_host = host.file(wazuh_file) - assert wazuh_file_host.user == wazuh_owner - assert wazuh_file_host.group == wazuh_group - assert wazuh_file_host.mode == wazuh_mode - - -def test_filebeat_is_installed(host): - """Test the elasticsearch package is installed.""" - filebeat = host.package("filebeat") - assert filebeat.is_installed - assert filebeat.version.startswith('7.10.2') diff --git a/molecule/distributed-wazuh-elk-xpack/group_vars/all.yml b/molecule/distributed-wazuh-elk-xpack/group_vars/all.yml deleted file mode 100644 index dd856b902..000000000 --- a/molecule/distributed-wazuh-elk-xpack/group_vars/all.yml +++ /dev/null @@ -1,36 +0,0 @@ ---- - -######################################################## -# Helper variables -private_ip: '{{ ansible_default_ipv4.address }}' - -managers_hostvars: "{{ groups['managers'] | map('extract', hostvars) | list }}" -elastic_hostvars: "{{ groups['elastic'] | map('extract', hostvars) | list }}" -kibana_hostvars: "{{ groups['kibana'] | map('extract', hostvars) | list }}" - -manager_addresses: "{{ managers_hostvars | map(attribute='private_ip') | list }}" -elastic_addresses: "{{ elastic_hostvars | map(attribute='private_ip') | list }}" -kibana_addresses: "{{ kibana_hostvars | map(attribute='private_ip') | list }}" - -######################################################## -# Versions -elastic_stack_version: 7.10.2 -filebeat_version: 7.10.2 - -# Debian packages need the ${VERSION}-1 -wazuh_manager_version: 4.4.0-1 -wazuh_agent_version: 4.4.0-1 - -# Kibana role appends it automatically. -wazuh_version: 4.4.0 - -######################################################## -# General ELK stack variables - -# Xpack Security: autogenerate CA -generate_CA: true -filebeat_xpack_security: true -kibana_xpack_security: true -elasticsearch_xpack_security: true -elasticsearch_xpack_security_user: elastic -elasticsearch_xpack_security_password: elastic_pass diff --git a/molecule/distributed-wazuh-elk-xpack/tests/test_default.py b/molecule/distributed-wazuh-elk-xpack/tests/test_default.py deleted file mode 100644 index d70bd1ea7..000000000 --- a/molecule/distributed-wazuh-elk-xpack/tests/test_default.py +++ /dev/null @@ -1,64 +0,0 @@ -import os -import pytest -import testinfra.utils.ansible_runner - -testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( - os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all') - - -def get_wazuh_version(): - """This return the version of Wazuh.""" - return "4.4.0" - - -def test_wazuh_packages_are_installed(host): - """Test the main packages are installed.""" - manager = host.package("wazuh-manager") - assert manager.is_installed - assert manager.version.startswith(get_wazuh_version()) - - -def test_wazuh_services_are_running(host): - """Test the services are enabled and running. - - When assert commands are commented, this means that the service command has - a wrong exit code: https://github.com/wazuh/wazuh-ansible/issues/107 - """ - # This currently doesn't work with out current Docker base images - # manager = host.service("wazuh-manager") - # api = host.service("wazuh-api") - # assert manager.is_running - # assert api.is_running - output = host.check_output( - 'ps aux | grep ossec | tr -s " " | cut -d" " -f11' - ) - assert 'ossec-authd' in output - assert 'wazuh-modulesd' in output - assert 'wazuh-db' in output - assert 'ossec-execd' in output - assert 'ossec-monitord' in output - assert 'ossec-remoted' in output - assert 'ossec-logcollector' in output - assert 'ossec-analysisd' in output - assert 'ossec-syscheckd' in output - - -@pytest.mark.parametrize("wazuh_file, wazuh_owner, wazuh_group, wazuh_mode", [ - ("/var/ossec/etc/sslmanager.cert", "root", "root", 0o640), - ("/var/ossec/etc/sslmanager.key", "root", "root", 0o640), - ("/var/ossec/etc/rules/local_rules.xml", "wazuh", "wazuh", 0o640), - ("/var/ossec/etc/lists/audit-keys", "wazuh", "wazuh", 0o660), -]) -def test_wazuh_files(host, wazuh_file, wazuh_owner, wazuh_group, wazuh_mode): - """Test Wazuh related files exist and have proper owners and mode.""" - wazuh_file_host = host.file(wazuh_file) - assert wazuh_file_host.user == wazuh_owner - assert wazuh_file_host.group == wazuh_group - assert wazuh_file_host.mode == wazuh_mode - - -def test_filebeat_is_installed(host): - """Test the elasticsearch package is installed.""" - filebeat = host.package("filebeat") - assert filebeat.is_installed - assert filebeat.version.startswith('7.10.2') diff --git a/molecule/distributed-wazuh-elk/group_vars/all.yml b/molecule/distributed-wazuh-elk/group_vars/all.yml deleted file mode 100644 index 6fdbc2248..000000000 --- a/molecule/distributed-wazuh-elk/group_vars/all.yml +++ /dev/null @@ -1,23 +0,0 @@ ---- - -######################################################## -# Helper variables -private_ip: '{{ ansible_default_ipv4.address }}' - -managers_hostvars: "{{ groups['managers'] | map('extract', hostvars) | list }}" -elastic_hostvars: "{{ groups['elastic'] | map('extract', hostvars) | list }}" - -manager_addresses: "{{ managers_hostvars | map(attribute='private_ip') | list }}" -elastic_addresses: "{{ elastic_hostvars | map(attribute='private_ip') | list }}" - -######################################################## -# Versions -elastic_stack_version: 7.10.2 -filebeat_version: 7.10.2 - -# Debian packages need the ${VERSION}-1 -wazuh_manager_version: 4.4.0-1 -wazuh_agent_version: 4.4.0-1 - -# Kibana role appends it automatically. -wazuh_version: 4.4.0 diff --git a/molecule/distributed-wazuh-odfe/group_vars/all.yml b/molecule/distributed-wazuh-odfe/group_vars/all.yml deleted file mode 100644 index 36080bf0f..000000000 --- a/molecule/distributed-wazuh-odfe/group_vars/all.yml +++ /dev/null @@ -1,47 +0,0 @@ ---- - -######################################################## -# Helper variables -private_ip: '{{ ansible_default_ipv4.address }}' - -managers_hostvars: "{{ groups['managers'] | map('extract', hostvars) | list }}" -elastic_hostvars: "{{ groups['elastic'] | map('extract', hostvars) | list }}" -kibana_hostvars: "{{ groups['kibana'] | map('extract', hostvars) | list }}" - -manager_addresses: "{{ managers_hostvars | map(attribute='private_ip') | list }}" -elastic_addresses: "{{ elastic_hostvars | map(attribute='private_ip') | list }}" -kibana_addresses: "{{ kibana_hostvars | map(attribute='private_ip') | list }}" - -######################################################## -# General ELK stack variables - -# OpenDistro -kibana_opendistro_security: true - -opendistro_kibana_user: kibanaserver -opendistro_security_user: elastic - -opendistro_kibana_password: changeme -opendistro_security_password: admin -opendistro_admin_password: changeme - -# All nodes are called by IP name -elasticsearch_node_name: '{{ ansible_hostname }}' -kibana_node_name: '{{ ansible_hostname }}' -filebeat_node_name: '{{ ansible_hostname }}' - -######################################################## -# Versions -# See: https://opendistro.github.io/for-elasticsearch-docs/version-history/ - -elastic_stack_version: 7.10.2 -opendistro_version: 1.13.2 -filebeat_version: 7.10.2 -kibana_opendistro_version: 1.13.2-1 - -# Debian packages need the ${VERSION}-1 -wazuh_manager_version: 4.4.0-1 -wazuh_agent_version: 4.4.0-1 - -# Kibana role appends it automatically. -wazuh_version: 4.4.0 diff --git a/molecule/distributed-wazuh-odfe/tests/test_default.py b/molecule/distributed-wazuh-odfe/tests/test_default.py deleted file mode 100644 index d70bd1ea7..000000000 --- a/molecule/distributed-wazuh-odfe/tests/test_default.py +++ /dev/null @@ -1,64 +0,0 @@ -import os -import pytest -import testinfra.utils.ansible_runner - -testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( - os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all') - - -def get_wazuh_version(): - """This return the version of Wazuh.""" - return "4.4.0" - - -def test_wazuh_packages_are_installed(host): - """Test the main packages are installed.""" - manager = host.package("wazuh-manager") - assert manager.is_installed - assert manager.version.startswith(get_wazuh_version()) - - -def test_wazuh_services_are_running(host): - """Test the services are enabled and running. - - When assert commands are commented, this means that the service command has - a wrong exit code: https://github.com/wazuh/wazuh-ansible/issues/107 - """ - # This currently doesn't work with out current Docker base images - # manager = host.service("wazuh-manager") - # api = host.service("wazuh-api") - # assert manager.is_running - # assert api.is_running - output = host.check_output( - 'ps aux | grep ossec | tr -s " " | cut -d" " -f11' - ) - assert 'ossec-authd' in output - assert 'wazuh-modulesd' in output - assert 'wazuh-db' in output - assert 'ossec-execd' in output - assert 'ossec-monitord' in output - assert 'ossec-remoted' in output - assert 'ossec-logcollector' in output - assert 'ossec-analysisd' in output - assert 'ossec-syscheckd' in output - - -@pytest.mark.parametrize("wazuh_file, wazuh_owner, wazuh_group, wazuh_mode", [ - ("/var/ossec/etc/sslmanager.cert", "root", "root", 0o640), - ("/var/ossec/etc/sslmanager.key", "root", "root", 0o640), - ("/var/ossec/etc/rules/local_rules.xml", "wazuh", "wazuh", 0o640), - ("/var/ossec/etc/lists/audit-keys", "wazuh", "wazuh", 0o660), -]) -def test_wazuh_files(host, wazuh_file, wazuh_owner, wazuh_group, wazuh_mode): - """Test Wazuh related files exist and have proper owners and mode.""" - wazuh_file_host = host.file(wazuh_file) - assert wazuh_file_host.user == wazuh_owner - assert wazuh_file_host.group == wazuh_group - assert wazuh_file_host.mode == wazuh_mode - - -def test_filebeat_is_installed(host): - """Test the elasticsearch package is installed.""" - filebeat = host.package("filebeat") - assert filebeat.is_installed - assert filebeat.version.startswith('7.10.2') diff --git a/molecule/distributed-wazuh/INSTALL.rst b/molecule/distributed-wazuh/INSTALL.rst deleted file mode 100644 index e26493b8b..000000000 --- a/molecule/distributed-wazuh/INSTALL.rst +++ /dev/null @@ -1,16 +0,0 @@ -******* -Install -******* - -Requirements -============ - -* Docker Engine -* docker-py - -Install -======= - -.. code-block:: bash - - $ sudo pip install docker-py diff --git a/molecule/distributed-wazuh/converge.yml b/molecule/distributed-wazuh/converge.yml deleted file mode 100644 index 6ed457fd8..000000000 --- a/molecule/distributed-wazuh/converge.yml +++ /dev/null @@ -1,126 +0,0 @@ ---- - -- name: Build Facts - hosts: all - become: true - become_user: root - vars: - endpoints_hostvars: '{{ managers_hostvars | union(indexer_hostvars) | union(dashboard_hostvars) }}' - wazuh_managers_common: - port: 1514 - protocol: tcp - api_port: 55000 - api_proto: 'http' - api_user: ansible - max_retries: 5 - retry_interval: 5 - pre_tasks: - - name: (converge) build instances list dynamically for cert generator consumption - set_fact: - wazuh_endpoint_list: "{{ wazuh_endpoint_list | default({}) | combine({ instance_hostname: instance_item }) }}" - vars: - instance_hostname: '{{ item.ansible_facts.hostname }}' - instance_item: - name: '{{ instance_hostname }}' - ip: '{{ item.private_ip }}' - loop: '{{ endpoints_hostvars }}' - no_log: true - - - name: (converge) build wazuh_managers list dynamically for agents to consume - set_fact: - wazuh_managers_list: '{{ wazuh_managers_list | default([]) | union([manager_item]) }}' - vars: - manager_item: '{{ wazuh_managers_common | combine({"address": item}) }}' - loop: '{{ manager_addresses }}' - - - name: overview of cert configuration - debug: - var: wazuh_endpoint_list - -- name: Generate certificates prior to converging - hosts: molecule_wazuh_indexer_centos7 - become: true - become_user: root - roles: - - role: ../../roles/wazuh/wazuh-indexer - vars: - generate_certs: true - perform_installation: false - instances: - node1: - name: wazuh-es01 # Important: must be equal to indexer_node_name. - ip: "{{ hostvars.molecule_wazuh_indexer_centos7.private_ip }}" # When unzipping, the node will search for its node name folder to get the cert. - role: indexer - node2: - name: wazuh-es02 - ip: "{{ hostvars.molecule_wazuh_indexer_centos7_2.private_ip }}" - role: indexer - node3: - name: wazuh-mgr01 - ip: "{{ hostvars.molecule_wazuh_manager_debian9.private_ip }}" - role: wazuh - node_type: master - node4: - name: wazuh-mgr02 - ip: "{{ hostvars.molecule_wazuh_manager_centos7.private_ip }}" - role: wazuh - node_type: worker - node5: - name: wazuh-dash01 - ip: "{{ hostvars.molecule_wazuh_dashboard_centos7.private_ip }}" - role: dashboard - pre_tasks: - - name: overview of cert configuration - debug: - var: wazuh_endpoint_list - -- name: Converge - hosts: all - become: true - become_user: root - roles: - # 1. Check packages - - role: ../../roles/wazuh/check-packages - become: no - delegate_to: localhost - run_once: true - # 2. Wazuh indexer - - role: ../../roles/wazuh/wazuh-indexer - when: inventory_hostname in groups['indexer'] - # 3. Managers - - role: ../../roles/wazuh/ansible-wazuh-manager - when: inventory_hostname in groups['managers'] - - role: ../../roles/wazuh/ansible-filebeat-oss - when: inventory_hostname in groups['managers'] - # 4. Wazuh dashboard - - role: ../../roles/wazuh/wazuh-dashboard - when: inventory_hostname in groups['dashboard'] - # 5. Agents: - - role: ../../roles/wazuh/ansible-wazuh-agent - vars: - wazuh_managers: '{{ wazuh_managers_list }}' - when: inventory_hostname in groups['agents'] - vars: - instances: - node1: - name: wazuh-es01 # Important: must be equal to indexer_node_name. - ip: "{{ hostvars.molecule_wazuh_indexer_centos7.private_ip }}" # When unzipping, the node will search for its node name folder to get the cert. - role: indexer - node2: - name: wazuh-es02 - ip: "{{ hostvars.molecule_wazuh_indexer_centos7_2.private_ip }}" - role: indexer - node3: - name: wazuh-mgr01 - ip: "{{ hostvars.molecule_wazuh_manager_debian9.private_ip }}" - role: wazuh - node_type: master - node4: - name: wazuh-mgr02 - ip: "{{ hostvars.molecule_wazuh_manager_centos7.private_ip }}" - role: wazuh - node_type: worker - node5: - name: wazuh-dash01 - ip: "{{ hostvars.molecule_wazuh_dashboard_centos7.private_ip }}" - role: dashboard \ No newline at end of file diff --git a/molecule/distributed-wazuh/group_vars/agents.yml b/molecule/distributed-wazuh/group_vars/agents.yml deleted file mode 100644 index e912b2557..000000000 --- a/molecule/distributed-wazuh/group_vars/agents.yml +++ /dev/null @@ -1,24 +0,0 @@ ---- - -wazuh_agent_config: - enrollment: - enabled: 'yes' - #manager_address: '' - #port: 1515 - agent_name: '{{ ansible_hostname }}' - #groups: '' - #agent_address: '' - #server_ca_path: '' - #agent_certificate_path: '' - #agent_key_path: '' - #authorization_pass_path : /var/ossec/etc/authd.pass - #auto_method: 'no' - #delay_after_enrollment: 20 - #use_source_ip: 'no' - -wazuh_agent_authd: - registration_address: '{{ manager_addresses[0] }}' - enable: true - port: 1515 - ssl_agent_ca: null - ssl_auto_negotiate: 'no' \ No newline at end of file diff --git a/molecule/distributed-wazuh/group_vars/all.yml b/molecule/distributed-wazuh/group_vars/all.yml deleted file mode 100644 index 007b0d9af..000000000 --- a/molecule/distributed-wazuh/group_vars/all.yml +++ /dev/null @@ -1,39 +0,0 @@ ---- - -######################################################## -# Helper variables -private_ip: '{{ ansible_default_ipv4.address }}' - -managers_hostvars: "{{ groups['managers'] | map('extract', hostvars) | list }}" -indexer_hostvars: "{{ groups['indexer'] | map('extract', hostvars) | list }}" -dashboard_hostvars: "{{ groups['dashboard'] | map('extract', hostvars) | list }}" - -manager_addresses: "{{ managers_hostvars | map(attribute='private_ip') | list }}" -indexer_addresses: "{{ indexer_hostvars | map(attribute='private_ip') | list }}" -dashboard_addresses: "{{ dashboard_hostvars | map(attribute='private_ip') | list }}" - -######################################################## -# General Wazuh stack variables - -# Wazuh indexer/dashboard -dashboard_security: true - -dashboard_user: kibanaserver -indexer_security_user: admin - -dashboard_password: changeme -indexer_security_password: changeme -indexer_admin_password: changeme - -# All nodes are called by IP name -indexer_node_name: '{{ ansible_facts.hostname }}' -dashboard_node_name: '{{ ansible_facts.hostname }}' -filebeat_node_name: '{{ ansible_facts.hostname }}' - -indexer_version: 4.4.0 -filebeat_version: 7.10.2 -wazuh_version: 4.4.0 - -# Debian packages need the ${VERSION}-1 -wazuh_manager_version: 4.4.0 -wazuh_agent_version: 4.4.0 diff --git a/molecule/distributed-wazuh/group_vars/dashboard.yml b/molecule/distributed-wazuh/group_vars/dashboard.yml deleted file mode 100644 index 16f489595..000000000 --- a/molecule/distributed-wazuh/group_vars/dashboard.yml +++ /dev/null @@ -1,16 +0,0 @@ ---- - -dashboard_server_name: '{{ ansible_hostname }}' -indexer_network_host: "{{ indexer_addresses[0] }}" - -indexer_node_master: false -indexer_node_ingest: false -indexer_node_data: false -role: 'dashboard' - -wazuh_api_credentials: - - id: default - url: 'https://{{ manager_addresses[0] }}' - port: 55000 - username: wazuh - password: wazuh diff --git a/molecule/distributed-wazuh/group_vars/indexer.yml b/molecule/distributed-wazuh/group_vars/indexer.yml deleted file mode 100644 index f8804629b..000000000 --- a/molecule/distributed-wazuh/group_vars/indexer.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- - -single_node: false -indexer_node_master: true -minimum_master_nodes: 1 -role: 'indexer' - -indexer_network_host: '{{ private_ip }}' - -indexer_http_port: 9200 - -indexer_cluster_nodes: '{{ indexer_addresses }}' -indexer_discovery_nodes: '{{ indexer_addresses }}' diff --git a/molecule/distributed-wazuh/group_vars/managers.yml b/molecule/distributed-wazuh/group_vars/managers.yml deleted file mode 100644 index 354136c75..000000000 --- a/molecule/distributed-wazuh/group_vars/managers.yml +++ /dev/null @@ -1,21 +0,0 @@ ---- - -wazuh_manager_fqdn: '{{ ansible_hostname }}' -filebeat_output_indexer_hosts: '{{ indexer_addresses }}' -node_type: "{{ 'master' if ansible_hostname == 'wazuh-mgr01' else 'worker' }}" -role: 'wazuh' - -wazuh_manager_config: - connection: - - type: 'secure' - port: '1514' - protocol: 'tcp' - queue_size: 131072 - api: - https: 'yes' - cluster: - disable: 'no' - node_name: '{{ ansible_hostname }}' - node_type: "{{ 'master' if ansible_hostname == 'wazuh-mgr01' else 'worker' }}" - nodes: '{{ manager_addresses }}' - hidden: 'no' \ No newline at end of file diff --git a/molecule/distributed-wazuh/molecule.yml b/molecule/distributed-wazuh/molecule.yml deleted file mode 100644 index d6f1d90b4..000000000 --- a/molecule/distributed-wazuh/molecule.yml +++ /dev/null @@ -1,162 +0,0 @@ ---- -# Distributed scenario: clustered manager scenario + connected agents -# 2-core CPU -# 7 GB of RAM memory -# 14 GB of SSD disk space -# -# Source: https://docs.github.com/en/free-pro-team@latest/actions/reference/specifications-for-github-hosted-runners - -dependency: - name: galaxy -driver: - name: docker -lint: | - yamllint . - ansible-lint roles - flake8 molecule -platforms: - ################################################ - # Wazuh Managers - ################################################ - - name: molecule_wazuh_manager_centos7 - hostname: wazuh-mgr01 - image: geerlingguy/docker-centos7-ansible - command: /sbin/init - pre_build_image: true - privileged: true - memory_reservation: 512m - memory: 1024m - groups: - - managers - ulimits: - - nofile:262144:262144 - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - - - name: molecule_wazuh_manager_debian9 - hostname: wazuh-mgr02 - image: geerlingguy/docker-debian9-ansible - command: /sbin/init - pre_build_image: true - privileged: true - memory_reservation: 512m - memory: 1024m - groups: - - managers - ulimits: - - nofile:262144:262144 - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - - ################################################ - # Wazuh indexer Cluster - ################################################ - - name: molecule_wazuh_indexer_centos7 - hostname: wazuh-es01 - image: geerlingguy/docker-centos7-ansible - command: /sbin/init - pre_build_image: true - privileged: true - memory: 4096m - memory_reservation: 2048m - groups: - - indexer - ulimits: - - nofile:262144:262144 - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - - - name: molecule_wazuh_indexer_centos7_2 - hostname: wazuh-es02 - image: geerlingguy/docker-centos7-ansible - command: /sbin/init - pre_build_image: true - privileged: true - memory: 4096m - memory_reservation: 2048m - groups: - - indexer - ulimits: - - nofile:262144:262144 - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - - ################################################ - # Wazuh Agents - ################################################ - - name: molecule_wazuh_agent_centos7 - hostname: wazuh-agent01 - image: geerlingguy/docker-centos7-ansible - command: /sbin/init - pre_build_image: true - privileged: true - memory: 1024m - memory_reservation: 512m - groups: - - agents - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - - - name: molecule_wazuh_agent_debian9 - hostname: wazuh-agent02 - image: geerlingguy/docker-debian9-ansible - command: /sbin/init - pre_build_image: true - privileged: true - memory: 1024m - memory_reservation: 512m - groups: - - agents - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - - ################################################ - # Wazuh dashboard - ################################################ - - - name: molecule_wazuh_dashboard_centos7 - hostname: wazuh-dash01 - image: geerlingguy/docker-centos7-ansible - command: /sbin/init - pre_build_image: true - privileged: true - memory: 2048m - memory_reservation: 512m - groups: - - dashboard - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - -provisioner: - name: ansible - ansible_args: - - -vv - inventory: - links: - group_vars: group_vars - playbooks: - create: create.yml - converge: converge.yml - #destroy: destroy.yml - config_options: - defaults: - hash_behaviour: merge - env: - ANSIBLE_ROLES_PATH: ./roles - lint: - name: ansible-lint - enabled: false -scenario: - name: distributed-wazuh - test_sequence: - - dependency - - syntax - - create - - prepare - - converge - #- idempotence - #- verify - - cleanup - - destroy -verifier: - name: testinfra \ No newline at end of file diff --git a/molecule/distributed-wazuh/tests/test_default.py b/molecule/distributed-wazuh/tests/test_default.py deleted file mode 100644 index d70bd1ea7..000000000 --- a/molecule/distributed-wazuh/tests/test_default.py +++ /dev/null @@ -1,64 +0,0 @@ -import os -import pytest -import testinfra.utils.ansible_runner - -testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( - os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all') - - -def get_wazuh_version(): - """This return the version of Wazuh.""" - return "4.4.0" - - -def test_wazuh_packages_are_installed(host): - """Test the main packages are installed.""" - manager = host.package("wazuh-manager") - assert manager.is_installed - assert manager.version.startswith(get_wazuh_version()) - - -def test_wazuh_services_are_running(host): - """Test the services are enabled and running. - - When assert commands are commented, this means that the service command has - a wrong exit code: https://github.com/wazuh/wazuh-ansible/issues/107 - """ - # This currently doesn't work with out current Docker base images - # manager = host.service("wazuh-manager") - # api = host.service("wazuh-api") - # assert manager.is_running - # assert api.is_running - output = host.check_output( - 'ps aux | grep ossec | tr -s " " | cut -d" " -f11' - ) - assert 'ossec-authd' in output - assert 'wazuh-modulesd' in output - assert 'wazuh-db' in output - assert 'ossec-execd' in output - assert 'ossec-monitord' in output - assert 'ossec-remoted' in output - assert 'ossec-logcollector' in output - assert 'ossec-analysisd' in output - assert 'ossec-syscheckd' in output - - -@pytest.mark.parametrize("wazuh_file, wazuh_owner, wazuh_group, wazuh_mode", [ - ("/var/ossec/etc/sslmanager.cert", "root", "root", 0o640), - ("/var/ossec/etc/sslmanager.key", "root", "root", 0o640), - ("/var/ossec/etc/rules/local_rules.xml", "wazuh", "wazuh", 0o640), - ("/var/ossec/etc/lists/audit-keys", "wazuh", "wazuh", 0o660), -]) -def test_wazuh_files(host, wazuh_file, wazuh_owner, wazuh_group, wazuh_mode): - """Test Wazuh related files exist and have proper owners and mode.""" - wazuh_file_host = host.file(wazuh_file) - assert wazuh_file_host.user == wazuh_owner - assert wazuh_file_host.group == wazuh_group - assert wazuh_file_host.mode == wazuh_mode - - -def test_filebeat_is_installed(host): - """Test the elasticsearch package is installed.""" - filebeat = host.package("filebeat") - assert filebeat.is_installed - assert filebeat.version.startswith('7.10.2') diff --git a/poetry.lock b/poetry.lock deleted file mode 100644 index f91817c38..000000000 --- a/poetry.lock +++ /dev/null @@ -1,1342 +0,0 @@ -[[package]] -name = "ansible" -version = "4.10.0" -description = "Radically simple IT automation" -category = "main" -optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" - -[package.dependencies] -ansible-core = ">=2.11.7,<2.12.0" - -[[package]] -name = "ansible-core" -version = "2.11.10" -description = "Radically simple IT automation" -category = "main" -optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" - -[package.dependencies] -cryptography = "*" -jinja2 = "*" -packaging = "*" -PyYAML = "*" -resolvelib = ">=0.5.3,<0.6.0" - -[[package]] -name = "ansible-lint" -version = "5.4.0" -description = "Checks playbooks for practices and behaviour that could potentially be improved" -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -enrich = ">=1.2.6" -packaging = "*" -pyyaml = "*" -rich = ">=9.5.1" -"ruamel.yaml" = [ - {version = ">=0.15.34,<1", markers = "python_version < \"3.7\""}, - {version = ">=0.15.37,<1", markers = "python_version >= \"3.7\""}, -] -tenacity = "*" -typing-extensions = {version = "*", markers = "python_version < \"3.8\""} -wcmatch = ">=7.0" - -[package.extras] -community = ["ansible (>=2.10)"] -core = ["ansible-core (>=2.11.4)"] -test = ["coverage (>=6.2,<6.3)", "tomli (>=1.2.3,<2.0.0)", "flaky (>=3.7.0)", "pytest (>=6.0.1)", "pytest-cov (>=2.10.1)", "pytest-xdist (>=2.1.0)", "psutil"] -cyamllint = ["yamllint (>=1.25.0)"] - -[[package]] -name = "arrow" -version = "0.17.0" -description = "Better dates & times for Python" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[package.dependencies] -python-dateutil = ">=2.7.0" - -[[package]] -name = "atomicwrites" -version = "1.4.0" -description = "Atomic file writes." -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[[package]] -name = "attrs" -version = "20.2.0" -description = "Classes Without Boilerplate" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[package.extras] -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "sphinx", "sphinx-rtd-theme", "pre-commit"] -docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"] -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"] -tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six"] - -[[package]] -name = "bcrypt" -version = "3.2.0" -description = "Modern password hashing for your software and your servers" -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -cffi = ">=1.1" -six = ">=1.4.1" - -[package.extras] -tests = ["pytest (>=3.2.1,!=3.3.0)"] -typecheck = ["mypy"] - -[[package]] -name = "binaryornot" -version = "0.4.4" -description = "Ultra-lightweight pure Python package to check if a file is binary or text." -category = "dev" -optional = false -python-versions = "*" - -[package.dependencies] -chardet = ">=3.0.2" - -[[package]] -name = "bracex" -version = "2.2.1" -description = "Bash style brace expander." -category = "dev" -optional = false -python-versions = ">=3.6" - -[[package]] -name = "cerberus" -version = "1.3.2" -description = "Lightweight, extensible schema and data validation tool for Python dictionaries." -category = "dev" -optional = false -python-versions = ">=2.7" - -[[package]] -name = "certifi" -version = "2020.6.20" -description = "Python package for providing Mozilla's CA Bundle." -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "cffi" -version = "1.14.3" -description = "Foreign Function Interface for Python calling C code." -category = "main" -optional = false -python-versions = "*" - -[package.dependencies] -pycparser = "*" - -[[package]] -name = "chardet" -version = "3.0.4" -description = "Universal encoding detector for Python 2 and 3" -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "charset-normalizer" -version = "2.0.12" -description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "dev" -optional = false -python-versions = ">=3.5.0" - -[package.extras] -unicode_backport = ["unicodedata2"] - -[[package]] -name = "click" -version = "8.0.4" -description = "Composable command line interface toolkit" -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} - -[[package]] -name = "click-help-colors" -version = "0.9.1" -description = "Colorization of help messages in Click" -category = "dev" -optional = false -python-versions = "*" - -[package.dependencies] -click = ">=7.0,<9" - -[package.extras] -dev = ["pytest"] - -[[package]] -name = "colorama" -version = "0.4.4" -description = "Cross-platform colored terminal text." -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[[package]] -name = "commonmark" -version = "0.9.1" -description = "Python parser for the CommonMark Markdown spec" -category = "dev" -optional = false -python-versions = "*" - -[package.extras] -test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"] - -[[package]] -name = "cookiecutter" -version = "2.1.1" -description = "A command-line utility that creates projects from project templates, e.g. creating a Python package project from a Python package project template." -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[package.dependencies] -binaryornot = ">=0.4.4" -click = ">=7.0" -Jinja2 = ">=2.7,<4.0.0" -jinja2-time = ">=0.2.0" -poyo = ">=0.5.0" -python-slugify = ">=4.0.0" -requests = ">=2.23.0" -six = ">=1.10" - -[[package]] -name = "cryptography" -version = "3.2.1" -description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." -category = "main" -optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" - -[package.dependencies] -cffi = ">=1.8,<1.11.3 || >1.11.3" -six = ">=1.4.1" - -[package.extras] -docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"] -docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"] -pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"] -ssh = ["bcrypt (>=3.1.5)"] -test = ["pytest (>=3.6.0,!=3.9.0,!=3.9.1,!=3.9.2)", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"] - -[[package]] -name = "dataclasses" -version = "0.7" -description = "A backport of the dataclasses module for Python 3.6" -category = "dev" -optional = false -python-versions = ">=3.6, <3.7" - -[[package]] -name = "distro" -version = "1.5.0" -description = "Distro - an OS platform information API" -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "docker" -version = "4.3.1" -description = "A Python library for the Docker Engine API." -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[package.dependencies] -pywin32 = {version = "227", markers = "sys_platform == \"win32\""} -requests = ">=2.14.2,<2.18.0 || >2.18.0" -six = ">=1.4.0" -websocket-client = ">=0.32.0" - -[package.extras] -ssh = ["paramiko (>=2.4.2)"] -tls = ["pyOpenSSL (>=17.5.0)", "cryptography (>=1.3.4)", "idna (>=2.0.0)"] - -[[package]] -name = "enrich" -version = "1.2.7" -description = "enrich" -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -rich = ">=9.5.1" - -[package.extras] -test = ["mock (>=3.0.5)", "pytest-cov (>=2.7.1)", "pytest-mock (>=3.3.1)", "pytest-plus", "pytest-xdist (>=1.29.0)", "pytest (>=5.4.0)"] - -[[package]] -name = "flake8" -version = "4.0.1" -description = "the modular source code checker: pep8 pyflakes and co" -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -importlib-metadata = {version = "<4.3", markers = "python_version < \"3.8\""} -mccabe = ">=0.6.0,<0.7.0" -pycodestyle = ">=2.8.0,<2.9.0" -pyflakes = ">=2.4.0,<2.5.0" - -[[package]] -name = "idna" -version = "2.10" -description = "Internationalized Domain Names in Applications (IDNA)" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[[package]] -name = "importlib-metadata" -version = "2.0.0" -description = "Read metadata from Python packages" -category = "dev" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" - -[package.dependencies] -zipp = ">=0.5" - -[package.extras] -docs = ["sphinx", "rst.linker"] -testing = ["packaging", "pep517", "importlib-resources (>=1.3)"] - -[[package]] -name = "iniconfig" -version = "1.1.1" -description = "iniconfig: brain-dead simple config-ini parsing" -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "jinja2" -version = "3.0.3" -description = "A very fast and expressive template engine." -category = "main" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -MarkupSafe = ">=2.0" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "jinja2-time" -version = "0.2.0" -description = "Jinja2 Extension for Dates and Times" -category = "dev" -optional = false -python-versions = "*" - -[package.dependencies] -arrow = "*" -jinja2 = "*" - -[[package]] -name = "markupsafe" -version = "2.0.1" -description = "Safely add untrusted strings to HTML/XML markup." -category = "main" -optional = false -python-versions = ">=3.6" - -[[package]] -name = "mccabe" -version = "0.6.1" -description = "McCabe checker, plugin for flake8" -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "molecule" -version = "3.3.4" -description = "Molecule aids in the development and testing of Ansible roles" -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -ansible-lint = ">=5.0.12" -cerberus = ">=1.3.1,<1.3.3 || >1.3.3,<1.3.4 || >1.3.4" -click = ">=8.0,<9" -click-help-colors = ">=0.9" -cookiecutter = ">=2.1.1" -dataclasses = {version = "*", markers = "python_version < \"3.7\""} -enrich = ">=1.2.5" -Jinja2 = ">=2.10.1" -molecule-docker = {version = "*", optional = true, markers = "extra == \"docker\""} -packaging = "*" -paramiko = ">=2.5.0,<3" -pluggy = ">=0.7.1,<1.0" -PyYAML = ">=5.1,<6" -rich = ">=9.5.1" -selinux = {version = "*", markers = "sys_platform == \"linux\" or sys_platform == \"linux2\""} -subprocess-tee = ">=0.3.2" - -[package.extras] -ansible = ["ansible (>=2.10)"] -ansible-base = ["ansible-base (>=2.10)"] -docker = ["molecule-docker"] -docs = ["Sphinx (>=4.0.2)", "simplejson (>=3.17.2)", "sphinx-notfound-page (>=0.7.1)", "sphinx-ansible-theme (>=0.2.2)"] -lint = ["flake8 (>=3.8.4)", "pre-commit (>=2.10.1)", "yamllint"] -podman = ["molecule-podman"] -test = ["ansi2html (>=1.6.0)", "pexpect (>=4.8.0,<5)", "pytest-cov (>=2.10.1)", "pytest-helpers-namespace (>=2019.1.8)", "pytest-html (>=3.0.0)", "pytest-mock (>=3.3.1)", "pytest-plus (>=0.2)", "pytest-testinfra (>=6.1.0)", "pytest-verbose-parametrize (>=1.7.0)", "pytest-xdist (>=2.1.0)", "pytest (>=6.1.2)"] -windows = ["pywinrm"] - -[[package]] -name = "molecule-docker" -version = "0.3.4" -description = "Molecule aids in the development and testing of Ansible roles" -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -docker = ">=4.3.1" -molecule = ">=3.3.0" -selinux = {version = "*", markers = "sys_platform == \"linux\" or sys_platform == \"linux2\""} - -[package.extras] -docs = ["simplejson", "sphinx", "sphinx-ansible-theme (>=0.2.2)"] -lint = ["pre-commit (>=1.21.0)"] -test = ["molecule", "pytest-helpers-namespace"] - -[[package]] -name = "packaging" -version = "20.4" -description = "Core utilities for Python packages" -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[package.dependencies] -pyparsing = ">=2.0.2" -six = "*" - -[[package]] -name = "paramiko" -version = "2.7.2" -description = "SSH2 protocol library" -category = "dev" -optional = false -python-versions = "*" - -[package.dependencies] -bcrypt = ">=3.1.3" -cryptography = ">=2.5" -pynacl = ">=1.0.1" - -[package.extras] -all = ["pyasn1 (>=0.1.7)", "pynacl (>=1.0.1)", "bcrypt (>=3.1.3)", "invoke (>=1.3)", "gssapi (>=1.4.1)", "pywin32 (>=2.1.8)"] -ed25519 = ["pynacl (>=1.0.1)", "bcrypt (>=3.1.3)"] -gssapi = ["pyasn1 (>=0.1.7)", "gssapi (>=1.4.1)", "pywin32 (>=2.1.8)"] -invoke = ["invoke (>=1.3)"] - -[[package]] -name = "pathspec" -version = "0.8.0" -description = "Utility library for gitignore style pattern matching of file paths." -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[[package]] -name = "pluggy" -version = "0.13.1" -description = "plugin and hook calling mechanisms for python" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[package.dependencies] -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} - -[package.extras] -dev = ["pre-commit", "tox"] - -[[package]] -name = "poyo" -version = "0.5.0" -description = "A lightweight YAML Parser for Python. 🐓" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[[package]] -name = "py" -version = "1.10.0" -description = "library with cross-python path, ini-parsing, io, code, log facilities" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[[package]] -name = "pycodestyle" -version = "2.8.0" -description = "Python style guide checker" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[[package]] -name = "pycparser" -version = "2.20" -description = "C parser in Python" -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[[package]] -name = "pyflakes" -version = "2.4.0" -description = "passive checker of Python programs" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[[package]] -name = "pygments" -version = "2.7.4" -description = "Pygments is a syntax highlighting package written in Python." -category = "dev" -optional = false -python-versions = ">=3.5" - -[[package]] -name = "pynacl" -version = "1.4.0" -description = "Python binding to the Networking and Cryptography (NaCl) library" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[package.dependencies] -cffi = ">=1.4.1" -six = "*" - -[package.extras] -docs = ["sphinx (>=1.6.5)", "sphinx-rtd-theme"] -tests = ["pytest (>=3.2.1,!=3.3.0)", "hypothesis (>=3.27.0)"] - -[[package]] -name = "pyparsing" -version = "2.4.7" -description = "Python parsing module" -category = "main" -optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" - -[[package]] -name = "pytest" -version = "7.0.1" -description = "pytest: simple powerful testing with Python" -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} -attrs = ">=19.2.0" -colorama = {version = "*", markers = "sys_platform == \"win32\""} -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=0.12,<2.0" -py = ">=1.8.2" -tomli = ">=1.0.0" - -[package.extras] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] - -[[package]] -name = "pytest-testinfra" -version = "6.6.0" -description = "Test infrastructures" -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -pytest = "!=3.0.2" - -[package.extras] -ansible = ["ansible"] -paramiko = ["paramiko"] -salt = ["salt"] -winrm = ["pywinrm"] - -[[package]] -name = "python-dateutil" -version = "2.8.1" -description = "Extensions to the standard Python datetime module" -category = "dev" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" - -[package.dependencies] -six = ">=1.5" - -[[package]] -name = "python-slugify" -version = "4.0.1" -description = "A Python Slugify application that handles Unicode" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[package.dependencies] -text-unidecode = ">=1.3" - -[package.extras] -unidecode = ["Unidecode (>=1.1.1)"] - -[[package]] -name = "pywin32" -version = "227" -description = "Python for Window Extensions" -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "pyyaml" -version = "5.4" -description = "YAML parser and emitter for Python" -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" - -[[package]] -name = "requests" -version = "2.27.1" -description = "Python HTTP for Humans." -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" - -[package.dependencies] -certifi = ">=2017.4.17" -charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""} -idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""} -urllib3 = ">=1.21.1,<1.27" - -[package.extras] -socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] -use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"] - -[[package]] -name = "resolvelib" -version = "0.5.5" -description = "Resolve abstract dependencies into concrete ones" -category = "main" -optional = false -python-versions = "*" - -[package.extras] -examples = ["html5lib", "packaging", "pygraphviz", "requests"] -lint = ["black", "flake8"] -release = ["setl", "towncrier"] -test = ["commentjson", "packaging", "pytest"] - -[[package]] -name = "rich" -version = "10.11.0" -description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" -category = "dev" -optional = false -python-versions = ">=3.6,<4.0" - -[package.dependencies] -colorama = ">=0.4.0,<0.5.0" -commonmark = ">=0.9.0,<0.10.0" -dataclasses = {version = ">=0.7,<0.9", markers = "python_version >= \"3.6\" and python_version < \"3.7\""} -pygments = ">=2.6.0,<3.0.0" -typing-extensions = {version = ">=3.7.4,<4.0.0", markers = "python_version < \"3.8\""} - -[package.extras] -jupyter = ["ipywidgets (>=7.5.1,<8.0.0)"] - -[[package]] -name = "ruamel.yaml" -version = "0.16.12" -description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" -category = "dev" -optional = false -python-versions = "*" - -[package.dependencies] -"ruamel.yaml.clib" = {version = ">=0.1.2", markers = "platform_python_implementation == \"CPython\" and python_version < \"3.9\""} - -[package.extras] -docs = ["ryd"] -jinja2 = ["ruamel.yaml.jinja2 (>=0.2)"] - -[[package]] -name = "ruamel.yaml.clib" -version = "0.2.2" -description = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml" -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "selinux" -version = "0.2.1" -description = "shim selinux module" -category = "dev" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" - -[package.dependencies] -distro = ">=1.3.0" - -[[package]] -name = "six" -version = "1.15.0" -description = "Python 2 and 3 compatibility utilities" -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" - -[[package]] -name = "subprocess-tee" -version = "0.3.5" -description = "subprocess-tee" -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.extras] -test = ["enrich (>=1.2.6)", "mock (>=4.0.3)", "molecule (>=3.4.0)", "pytest-cov (>=2.12.1)", "pytest-plus (>=0.2)", "pytest-xdist (>=2.3.0)", "pytest (>=6.2.5)"] - -[[package]] -name = "tenacity" -version = "8.0.1" -description = "Retry code until it succeeds" -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.extras] -doc = ["reno", "sphinx", "tornado (>=4.5)"] - -[[package]] -name = "testinfra" -version = "6.0.0" -description = "Test infrastructures" -category = "dev" -optional = false -python-versions = ">=3.5" - -[package.dependencies] -pytest-testinfra = "*" - -[package.extras] -ansible = ["pytest-testinfra"] -paramiko = ["pytest-testinfra"] -salt = ["pytest-testinfra"] -winrm = ["pytest-testinfra"] - -[[package]] -name = "text-unidecode" -version = "1.3" -description = "The most basic Text::Unidecode port" -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "tomli" -version = "1.2.3" -description = "A lil' TOML parser" -category = "dev" -optional = false -python-versions = ">=3.6" - -[[package]] -name = "typing-extensions" -version = "3.7.4.3" -description = "Backported and Experimental Type Hints for Python 3.5+" -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "urllib3" -version = "1.26.5" -description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" - -[package.extras] -brotli = ["brotlipy (>=0.6.0)"] -secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] -socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] - -[[package]] -name = "wcmatch" -version = "8.3" -description = "Wildcard/glob file name matcher." -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -bracex = ">=2.1.1" - -[[package]] -name = "websocket-client" -version = "0.57.0" -description = "WebSocket client for Python. hybi13 is supported." -category = "dev" -optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[package.dependencies] -six = "*" - -[[package]] -name = "yamllint" -version = "1.26.3" -description = "A linter for YAML files." -category = "dev" -optional = false -python-versions = ">=3.5" - -[package.dependencies] -pathspec = ">=0.5.3" -pyyaml = "*" - -[[package]] -name = "zipp" -version = "3.4.0" -description = "Backport of pathlib-compatible object wrapper for zip files" -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.extras] -docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"] -testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] - -[metadata] -lock-version = "1.1" -python-versions = "^3.6" -content-hash = "1ef64c8c2ca8b979f8200c1131842702b436d1c56db5bc58e33ac9cc570538b1" - -[metadata.files] -ansible = [ - {file = "ansible-4.10.0.tar.gz", hash = "sha256:88af9479e81a3931bb3a1b8c4eeb252cd4f38c03daafd6a5aa120d6b0d70d45c"}, -] -ansible-core = [ - {file = "ansible-core-2.11.10.tar.gz", hash = "sha256:a0fba319963ff83c249bd0531b0b87d67e3ac0723f9cbf24b96790ff3774a897"}, -] -ansible-lint = [ - {file = "ansible-lint-5.4.0.tar.gz", hash = "sha256:2160a60b4ab034c04006d701a1779340ffb0f6e28f030ff8de958e1062a88962"}, - {file = "ansible_lint-5.4.0-py3-none-any.whl", hash = "sha256:fb57755825b50da88c226052772bd843d37714155b504175912daac0e186e8c0"}, -] -arrow = [ - {file = "arrow-0.17.0-py2.py3-none-any.whl", hash = "sha256:e098abbd9af3665aea81bdd6c869e93af4feb078e98468dd351c383af187aac5"}, - {file = "arrow-0.17.0.tar.gz", hash = "sha256:ff08d10cda1d36c68657d6ad20d74fbea493d980f8b2d45344e00d6ed2bf6ed4"}, -] -atomicwrites = [ - {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"}, - {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, -] -attrs = [ - {file = "attrs-20.2.0-py2.py3-none-any.whl", hash = "sha256:fce7fc47dfc976152e82d53ff92fa0407700c21acd20886a13777a0d20e655dc"}, - {file = "attrs-20.2.0.tar.gz", hash = "sha256:26b54ddbbb9ee1d34d5d3668dd37d6cf74990ab23c828c2888dccdceee395594"}, -] -bcrypt = [ - {file = "bcrypt-3.2.0-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:b589229207630484aefe5899122fb938a5b017b0f4349f769b8c13e78d99a8fd"}, - {file = "bcrypt-3.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c95d4cbebffafcdd28bd28bb4e25b31c50f6da605c81ffd9ad8a3d1b2ab7b1b6"}, - {file = "bcrypt-3.2.0-cp36-abi3-manylinux1_x86_64.whl", hash = "sha256:63d4e3ff96188e5898779b6057878fecf3f11cfe6ec3b313ea09955d587ec7a7"}, - {file = "bcrypt-3.2.0-cp36-abi3-manylinux2010_x86_64.whl", hash = "sha256:cd1ea2ff3038509ea95f687256c46b79f5fc382ad0aa3664d200047546d511d1"}, - {file = "bcrypt-3.2.0-cp36-abi3-manylinux2014_aarch64.whl", hash = "sha256:cdcdcb3972027f83fe24a48b1e90ea4b584d35f1cc279d76de6fc4b13376239d"}, - {file = "bcrypt-3.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:a0584a92329210fcd75eb8a3250c5a941633f8bfaf2a18f81009b097732839b7"}, - {file = "bcrypt-3.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:56e5da069a76470679f312a7d3d23deb3ac4519991a0361abc11da837087b61d"}, - {file = "bcrypt-3.2.0-cp36-abi3-win32.whl", hash = "sha256:a67fb841b35c28a59cebed05fbd3e80eea26e6d75851f0574a9273c80f3e9b55"}, - {file = "bcrypt-3.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:81fec756feff5b6818ea7ab031205e1d323d8943d237303baca2c5f9c7846f34"}, - {file = "bcrypt-3.2.0.tar.gz", hash = "sha256:5b93c1726e50a93a033c36e5ca7fdcd29a5c7395af50a6892f5d9e7c6cfbfb29"}, -] -binaryornot = [ - {file = "binaryornot-0.4.4-py2.py3-none-any.whl", hash = "sha256:b8b71173c917bddcd2c16070412e369c3ed7f0528926f70cac18a6c97fd563e4"}, - {file = "binaryornot-0.4.4.tar.gz", hash = "sha256:359501dfc9d40632edc9fac890e19542db1a287bbcfa58175b66658392018061"}, -] -bracex = [ - {file = "bracex-2.2.1-py3-none-any.whl", hash = "sha256:096c4b788bf492f7af4e90ef8b5bcbfb99759ae3415ea1b83c9d29a5ed8f9a94"}, - {file = "bracex-2.2.1.tar.gz", hash = "sha256:1c8d1296e00ad9a91030ccb4c291f9e4dc7c054f12c707ba3c5ff3e9a81bcd21"}, -] -cerberus = [ - {file = "Cerberus-1.3.2.tar.gz", hash = "sha256:302e6694f206dd85cb63f13fd5025b31ab6d38c99c50c6d769f8fa0b0f299589"}, -] -certifi = [ - {file = "certifi-2020.6.20-py2.py3-none-any.whl", hash = "sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41"}, - {file = "certifi-2020.6.20.tar.gz", hash = "sha256:5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3"}, -] -cffi = [ - {file = "cffi-1.14.3-2-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3eeeb0405fd145e714f7633a5173318bd88d8bbfc3dd0a5751f8c4f70ae629bc"}, - {file = "cffi-1.14.3-2-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:cb763ceceae04803adcc4e2d80d611ef201c73da32d8f2722e9d0ab0c7f10768"}, - {file = "cffi-1.14.3-2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:44f60519595eaca110f248e5017363d751b12782a6f2bd6a7041cba275215f5d"}, - {file = "cffi-1.14.3-2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c53af463f4a40de78c58b8b2710ade243c81cbca641e34debf3396a9640d6ec1"}, - {file = "cffi-1.14.3-2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:33c6cdc071ba5cd6d96769c8969a0531be2d08c2628a0143a10a7dcffa9719ca"}, - {file = "cffi-1.14.3-2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c11579638288e53fc94ad60022ff1b67865363e730ee41ad5e6f0a17188b327a"}, - {file = "cffi-1.14.3-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:3cb3e1b9ec43256c4e0f8d2837267a70b0e1ca8c4f456685508ae6106b1f504c"}, - {file = "cffi-1.14.3-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:f0620511387790860b249b9241c2f13c3a80e21a73e0b861a2df24e9d6f56730"}, - {file = "cffi-1.14.3-cp27-cp27m-win32.whl", hash = "sha256:005f2bfe11b6745d726dbb07ace4d53f057de66e336ff92d61b8c7e9c8f4777d"}, - {file = "cffi-1.14.3-cp27-cp27m-win_amd64.whl", hash = "sha256:2f9674623ca39c9ebe38afa3da402e9326c245f0f5ceff0623dccdac15023e05"}, - {file = "cffi-1.14.3-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:09e96138280241bd355cd585148dec04dbbedb4f46128f340d696eaafc82dd7b"}, - {file = "cffi-1.14.3-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:3363e77a6176afb8823b6e06db78c46dbc4c7813b00a41300a4873b6ba63b171"}, - {file = "cffi-1.14.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:0ef488305fdce2580c8b2708f22d7785ae222d9825d3094ab073e22e93dfe51f"}, - {file = "cffi-1.14.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:0b1ad452cc824665ddc682400b62c9e4f5b64736a2ba99110712fdee5f2505c4"}, - {file = "cffi-1.14.3-cp35-cp35m-win32.whl", hash = "sha256:85ba797e1de5b48aa5a8427b6ba62cf69607c18c5d4eb747604b7302f1ec382d"}, - {file = "cffi-1.14.3-cp35-cp35m-win_amd64.whl", hash = "sha256:e66399cf0fc07de4dce4f588fc25bfe84a6d1285cc544e67987d22663393926d"}, - {file = "cffi-1.14.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:15f351bed09897fbda218e4db5a3d5c06328862f6198d4fb385f3e14e19decb3"}, - {file = "cffi-1.14.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4d7c26bfc1ea9f92084a1d75e11999e97b62d63128bcc90c3624d07813c52808"}, - {file = "cffi-1.14.3-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:23e5d2040367322824605bc29ae8ee9175200b92cb5483ac7d466927a9b3d537"}, - {file = "cffi-1.14.3-cp36-cp36m-win32.whl", hash = "sha256:a624fae282e81ad2e4871bdb767e2c914d0539708c0f078b5b355258293c98b0"}, - {file = "cffi-1.14.3-cp36-cp36m-win_amd64.whl", hash = "sha256:de31b5164d44ef4943db155b3e8e17929707cac1e5bd2f363e67a56e3af4af6e"}, - {file = "cffi-1.14.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:f92cdecb618e5fa4658aeb97d5eb3d2f47aa94ac6477c6daf0f306c5a3b9e6b1"}, - {file = "cffi-1.14.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:22399ff4870fb4c7ef19fff6eeb20a8bbf15571913c181c78cb361024d574579"}, - {file = "cffi-1.14.3-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:f4eae045e6ab2bb54ca279733fe4eb85f1effda392666308250714e01907f394"}, - {file = "cffi-1.14.3-cp37-cp37m-win32.whl", hash = "sha256:b0358e6fefc74a16f745afa366acc89f979040e0cbc4eec55ab26ad1f6a9bfbc"}, - {file = "cffi-1.14.3-cp37-cp37m-win_amd64.whl", hash = "sha256:6642f15ad963b5092d65aed022d033c77763515fdc07095208f15d3563003869"}, - {file = "cffi-1.14.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:2791f68edc5749024b4722500e86303a10d342527e1e3bcac47f35fbd25b764e"}, - {file = "cffi-1.14.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:529c4ed2e10437c205f38f3691a68be66c39197d01062618c55f74294a4a4828"}, - {file = "cffi-1.14.3-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:8f0f1e499e4000c4c347a124fa6a27d37608ced4fe9f7d45070563b7c4c370c9"}, - {file = "cffi-1.14.3-cp38-cp38-win32.whl", hash = "sha256:3b8eaf915ddc0709779889c472e553f0d3e8b7bdf62dab764c8921b09bf94522"}, - {file = "cffi-1.14.3-cp38-cp38-win_amd64.whl", hash = "sha256:bbd2f4dfee1079f76943767fce837ade3087b578aeb9f69aec7857d5bf25db15"}, - {file = "cffi-1.14.3-cp39-cp39-manylinux1_i686.whl", hash = "sha256:cc75f58cdaf043fe6a7a6c04b3b5a0e694c6a9e24050967747251fb80d7bce0d"}, - {file = "cffi-1.14.3-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:bf39a9e19ce7298f1bd6a9758fa99707e9e5b1ebe5e90f2c3913a47bc548747c"}, - {file = "cffi-1.14.3-cp39-cp39-win32.whl", hash = "sha256:d80998ed59176e8cba74028762fbd9b9153b9afc71ea118e63bbf5d4d0f9552b"}, - {file = "cffi-1.14.3-cp39-cp39-win_amd64.whl", hash = "sha256:c150eaa3dadbb2b5339675b88d4573c1be3cb6f2c33a6c83387e10cc0bf05bd3"}, - {file = "cffi-1.14.3.tar.gz", hash = "sha256:f92f789e4f9241cd262ad7a555ca2c648a98178a953af117ef7fad46aa1d5591"}, -] -chardet = [ - {file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"}, - {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"}, -] -charset-normalizer = [ - {file = "charset-normalizer-2.0.12.tar.gz", hash = "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597"}, - {file = "charset_normalizer-2.0.12-py3-none-any.whl", hash = "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"}, -] -click = [ - {file = "click-8.0.4-py3-none-any.whl", hash = "sha256:6a7a62563bbfabfda3a38f3023a1db4a35978c0abd76f6c9605ecd6554d6d9b1"}, - {file = "click-8.0.4.tar.gz", hash = "sha256:8458d7b1287c5fb128c90e23381cf99dcde74beaf6c7ff6384ce84d6fe090adb"}, -] -click-help-colors = [ - {file = "click-help-colors-0.9.1.tar.gz", hash = "sha256:78cbcf30cfa81c5fc2a52f49220121e1a8190cd19197d9245997605d3405824d"}, - {file = "click_help_colors-0.9.1-py3-none-any.whl", hash = "sha256:25a6bd22d8abbc72c18a416a1cf21ab65b6120bee48e9637829666cbad22d51d"}, -] -colorama = [ - {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, - {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, -] -commonmark = [ - {file = "commonmark-0.9.1-py2.py3-none-any.whl", hash = "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"}, - {file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"}, -] -cookiecutter = [ - {file = "cookiecutter-2.1.1-py2.py3-none-any.whl", hash = "sha256:f8671531fa96ab14339d0c59b4f662a4f12a2ecacd94a0f70a3500843da588e2"}, - {file = "cookiecutter-2.1.1.tar.gz", hash = "sha256:f3982be8d9c53dac1261864013fdec7f83afd2e42ede6f6dd069c5e149c540d5"}, -] -cryptography = [ - {file = "cryptography-3.2.1-cp27-cp27m-macosx_10_10_x86_64.whl", hash = "sha256:6dc59630ecce8c1f558277ceb212c751d6730bd12c80ea96b4ac65637c4f55e7"}, - {file = "cryptography-3.2.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:75e8e6684cf0034f6bf2a97095cb95f81537b12b36a8fedf06e73050bb171c2d"}, - {file = "cryptography-3.2.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:4e7268a0ca14536fecfdf2b00297d4e407da904718658c1ff1961c713f90fd33"}, - {file = "cryptography-3.2.1-cp27-cp27m-win32.whl", hash = "sha256:7117319b44ed1842c617d0a452383a5a052ec6aa726dfbaffa8b94c910444297"}, - {file = "cryptography-3.2.1-cp27-cp27m-win_amd64.whl", hash = "sha256:a733671100cd26d816eed39507e585c156e4498293a907029969234e5e634bc4"}, - {file = "cryptography-3.2.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:a75f306a16d9f9afebfbedc41c8c2351d8e61e818ba6b4c40815e2b5740bb6b8"}, - {file = "cryptography-3.2.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:5849d59358547bf789ee7e0d7a9036b2d29e9a4ddf1ce5e06bb45634f995c53e"}, - {file = "cryptography-3.2.1-cp35-abi3-macosx_10_10_x86_64.whl", hash = "sha256:bd717aa029217b8ef94a7d21632a3bb5a4e7218a4513d2521c2a2fd63011e98b"}, - {file = "cryptography-3.2.1-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:efe15aca4f64f3a7ea0c09c87826490e50ed166ce67368a68f315ea0807a20df"}, - {file = "cryptography-3.2.1-cp35-abi3-manylinux2010_x86_64.whl", hash = "sha256:32434673d8505b42c0de4de86da8c1620651abd24afe91ae0335597683ed1b77"}, - {file = "cryptography-3.2.1-cp35-abi3-manylinux2014_aarch64.whl", hash = "sha256:7b8d9d8d3a9bd240f453342981f765346c87ade811519f98664519696f8e6ab7"}, - {file = "cryptography-3.2.1-cp35-cp35m-win32.whl", hash = "sha256:d3545829ab42a66b84a9aaabf216a4dce7f16dbc76eb69be5c302ed6b8f4a29b"}, - {file = "cryptography-3.2.1-cp35-cp35m-win_amd64.whl", hash = "sha256:a4e27ed0b2504195f855b52052eadcc9795c59909c9d84314c5408687f933fc7"}, - {file = "cryptography-3.2.1-cp36-abi3-win32.whl", hash = "sha256:13b88a0bd044b4eae1ef40e265d006e34dbcde0c2f1e15eb9896501b2d8f6c6f"}, - {file = "cryptography-3.2.1-cp36-abi3-win_amd64.whl", hash = "sha256:07ca431b788249af92764e3be9a488aa1d39a0bc3be313d826bbec690417e538"}, - {file = "cryptography-3.2.1-cp36-cp36m-win32.whl", hash = "sha256:a035a10686532b0587d58a606004aa20ad895c60c4d029afa245802347fab57b"}, - {file = "cryptography-3.2.1-cp36-cp36m-win_amd64.whl", hash = "sha256:d26a2557d8f9122f9bf445fc7034242f4375bd4e95ecda007667540270965b13"}, - {file = "cryptography-3.2.1-cp37-cp37m-win32.whl", hash = "sha256:545a8550782dda68f8cdc75a6e3bf252017aa8f75f19f5a9ca940772fc0cb56e"}, - {file = "cryptography-3.2.1-cp37-cp37m-win_amd64.whl", hash = "sha256:55d0b896631412b6f0c7de56e12eb3e261ac347fbaa5d5e705291a9016e5f8cb"}, - {file = "cryptography-3.2.1-cp38-cp38-win32.whl", hash = "sha256:3cd75a683b15576cfc822c7c5742b3276e50b21a06672dc3a800a2d5da4ecd1b"}, - {file = "cryptography-3.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:d25cecbac20713a7c3bc544372d42d8eafa89799f492a43b79e1dfd650484851"}, - {file = "cryptography-3.2.1.tar.gz", hash = "sha256:d3d5e10be0cf2a12214ddee45c6bd203dab435e3d83b4560c03066eda600bfe3"}, -] -dataclasses = [ - {file = "dataclasses-0.7-py3-none-any.whl", hash = "sha256:3459118f7ede7c8bea0fe795bff7c6c2ce287d01dd226202f7c9ebc0610a7836"}, - {file = "dataclasses-0.7.tar.gz", hash = "sha256:494a6dcae3b8bcf80848eea2ef64c0cc5cd307ffc263e17cdf42f3e5420808e6"}, -] -distro = [ - {file = "distro-1.5.0-py2.py3-none-any.whl", hash = "sha256:df74eed763e18d10d0da624258524ae80486432cd17392d9c3d96f5e83cd2799"}, - {file = "distro-1.5.0.tar.gz", hash = "sha256:0e58756ae38fbd8fc3020d54badb8eae17c5b9dcbed388b17bb55b8a5928df92"}, -] -docker = [ - {file = "docker-4.3.1-py2.py3-none-any.whl", hash = "sha256:13966471e8bc23b36bfb3a6fb4ab75043a5ef1dac86516274777576bed3b9828"}, - {file = "docker-4.3.1.tar.gz", hash = "sha256:bad94b8dd001a8a4af19ce4becc17f41b09f228173ffe6a4e0355389eef142f2"}, -] -enrich = [ - {file = "enrich-1.2.7-py3-none-any.whl", hash = "sha256:f29b2c8c124b4dbd7c975ab5c3568f6c7a47938ea3b7d2106c8a3bd346545e4f"}, - {file = "enrich-1.2.7.tar.gz", hash = "sha256:0a2ab0d2931dff8947012602d1234d2a3ee002d9a355b5d70be6bf5466008893"}, -] -flake8 = [ - {file = "flake8-4.0.1-py2.py3-none-any.whl", hash = "sha256:479b1304f72536a55948cb40a32dce8bb0ffe3501e26eaf292c7e60eb5e0428d"}, - {file = "flake8-4.0.1.tar.gz", hash = "sha256:806e034dda44114815e23c16ef92f95c91e4c71100ff52813adf7132a6ad870d"}, -] -idna = [ - {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"}, - {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"}, -] -importlib-metadata = [ - {file = "importlib_metadata-2.0.0-py2.py3-none-any.whl", hash = "sha256:cefa1a2f919b866c5beb7c9f7b0ebb4061f30a8a9bf16d609b000e2dfaceb9c3"}, - {file = "importlib_metadata-2.0.0.tar.gz", hash = "sha256:77a540690e24b0305878c37ffd421785a6f7e53c8b5720d211b211de8d0e95da"}, -] -iniconfig = [ - {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, - {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, -] -jinja2 = [ - {file = "Jinja2-3.0.3-py3-none-any.whl", hash = "sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8"}, - {file = "Jinja2-3.0.3.tar.gz", hash = "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"}, -] -jinja2-time = [ - {file = "jinja2-time-0.2.0.tar.gz", hash = "sha256:d14eaa4d315e7688daa4969f616f226614350c48730bfa1692d2caebd8c90d40"}, - {file = "jinja2_time-0.2.0-py2.py3-none-any.whl", hash = "sha256:d3eab6605e3ec8b7a0863df09cc1d23714908fa61aa6986a845c20ba488b4efa"}, -] -markupsafe = [ - {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"}, - {file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"}, -] -mccabe = [ - {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, - {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, -] -molecule = [ - {file = "molecule-3.3.4-py3-none-any.whl", hash = "sha256:a44c36bfc3734d561d941a90cf6ab18ede36e00decc92bd0f81623fa32dbdb2f"}, - {file = "molecule-3.3.4.tar.gz", hash = "sha256:5794d0b39e695c4544c714ac90ab90901f22d8c9f623c2fee665b8b2dc2ce6cc"}, -] -molecule-docker = [ - {file = "molecule-docker-0.3.4.tar.gz", hash = "sha256:dc9a8ad60b70ede303805cd6865deb5fb9c162e67ff5e7d1a45eb7e58cd36b88"}, - {file = "molecule_docker-0.3.4-py3-none-any.whl", hash = "sha256:9d65761052a7a5dad6deee25e2ce9597148913532a10542c3ad8c342f56fe3b2"}, -] -packaging = [ - {file = "packaging-20.4-py2.py3-none-any.whl", hash = "sha256:998416ba6962ae7fbd6596850b80e17859a5753ba17c32284f67bfff33784181"}, - {file = "packaging-20.4.tar.gz", hash = "sha256:4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8"}, -] -paramiko = [ - {file = "paramiko-2.7.2-py2.py3-none-any.whl", hash = "sha256:4f3e316fef2ac628b05097a637af35685183111d4bc1b5979bd397c2ab7b5898"}, - {file = "paramiko-2.7.2.tar.gz", hash = "sha256:7f36f4ba2c0d81d219f4595e35f70d56cc94f9ac40a6acdf51d6ca210ce65035"}, -] -pathspec = [ - {file = "pathspec-0.8.0-py2.py3-none-any.whl", hash = "sha256:7d91249d21749788d07a2d0f94147accd8f845507400749ea19c1ec9054a12b0"}, - {file = "pathspec-0.8.0.tar.gz", hash = "sha256:da45173eb3a6f2a5a487efba21f050af2b41948be6ab52b6a1e3ff22bb8b7061"}, -] -pluggy = [ - {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, - {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, -] -poyo = [ - {file = "poyo-0.5.0-py2.py3-none-any.whl", hash = "sha256:3e2ca8e33fdc3c411cd101ca395668395dd5dc7ac775b8e809e3def9f9fe041a"}, - {file = "poyo-0.5.0.tar.gz", hash = "sha256:e26956aa780c45f011ca9886f044590e2d8fd8b61db7b1c1cf4e0869f48ed4dd"}, -] -py = [ - {file = "py-1.10.0-py2.py3-none-any.whl", hash = "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"}, - {file = "py-1.10.0.tar.gz", hash = "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3"}, -] -pycodestyle = [ - {file = "pycodestyle-2.8.0-py2.py3-none-any.whl", hash = "sha256:720f8b39dde8b293825e7ff02c475f3077124006db4f440dcbc9a20b76548a20"}, - {file = "pycodestyle-2.8.0.tar.gz", hash = "sha256:eddd5847ef438ea1c7870ca7eb78a9d47ce0cdb4851a5523949f2601d0cbbe7f"}, -] -pycparser = [ - {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"}, - {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"}, -] -pyflakes = [ - {file = "pyflakes-2.4.0-py2.py3-none-any.whl", hash = "sha256:3bb3a3f256f4b7968c9c788781e4ff07dce46bdf12339dcda61053375426ee2e"}, - {file = "pyflakes-2.4.0.tar.gz", hash = "sha256:05a85c2872edf37a4ed30b0cce2f6093e1d0581f8c19d7393122da7e25b2b24c"}, -] -pygments = [ - {file = "Pygments-2.7.4-py3-none-any.whl", hash = "sha256:bc9591213a8f0e0ca1a5e68a479b4887fdc3e75d0774e5c71c31920c427de435"}, - {file = "Pygments-2.7.4.tar.gz", hash = "sha256:df49d09b498e83c1a73128295860250b0b7edd4c723a32e9bc0d295c7c2ec337"}, -] -pynacl = [ - {file = "PyNaCl-1.4.0-cp27-cp27m-macosx_10_10_x86_64.whl", hash = "sha256:ea6841bc3a76fa4942ce00f3bda7d436fda21e2d91602b9e21b7ca9ecab8f3ff"}, - {file = "PyNaCl-1.4.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:d452a6746f0a7e11121e64625109bc4468fc3100452817001dbe018bb8b08514"}, - {file = "PyNaCl-1.4.0-cp27-cp27m-win32.whl", hash = "sha256:2fe0fc5a2480361dcaf4e6e7cea00e078fcda07ba45f811b167e3f99e8cff574"}, - {file = "PyNaCl-1.4.0-cp27-cp27m-win_amd64.whl", hash = "sha256:f8851ab9041756003119368c1e6cd0b9c631f46d686b3904b18c0139f4419f80"}, - {file = "PyNaCl-1.4.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:7757ae33dae81c300487591c68790dfb5145c7d03324000433d9a2c141f82af7"}, - {file = "PyNaCl-1.4.0-cp35-abi3-macosx_10_10_x86_64.whl", hash = "sha256:757250ddb3bff1eecd7e41e65f7f833a8405fede0194319f87899690624f2122"}, - {file = "PyNaCl-1.4.0-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:30f9b96db44e09b3304f9ea95079b1b7316b2b4f3744fe3aaecccd95d547063d"}, - {file = "PyNaCl-1.4.0-cp35-abi3-win32.whl", hash = "sha256:4e10569f8cbed81cb7526ae137049759d2a8d57726d52c1a000a3ce366779634"}, - {file = "PyNaCl-1.4.0-cp35-abi3-win_amd64.whl", hash = "sha256:c914f78da4953b33d4685e3cdc7ce63401247a21425c16a39760e282075ac4a6"}, - {file = "PyNaCl-1.4.0-cp35-cp35m-win32.whl", hash = "sha256:06cbb4d9b2c4bd3c8dc0d267416aaed79906e7b33f114ddbf0911969794b1cc4"}, - {file = "PyNaCl-1.4.0-cp35-cp35m-win_amd64.whl", hash = "sha256:511d269ee845037b95c9781aa702f90ccc36036f95d0f31373a6a79bd8242e25"}, - {file = "PyNaCl-1.4.0-cp36-cp36m-win32.whl", hash = "sha256:11335f09060af52c97137d4ac54285bcb7df0cef29014a1a4efe64ac065434c4"}, - {file = "PyNaCl-1.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:cd401ccbc2a249a47a3a1724c2918fcd04be1f7b54eb2a5a71ff915db0ac51c6"}, - {file = "PyNaCl-1.4.0-cp37-cp37m-win32.whl", hash = "sha256:8122ba5f2a2169ca5da936b2e5a511740ffb73979381b4229d9188f6dcb22f1f"}, - {file = "PyNaCl-1.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:537a7ccbea22905a0ab36ea58577b39d1fa9b1884869d173b5cf111f006f689f"}, - {file = "PyNaCl-1.4.0-cp38-cp38-win32.whl", hash = "sha256:9c4a7ea4fb81536c1b1f5cc44d54a296f96ae78c1ebd2311bd0b60be45a48d96"}, - {file = "PyNaCl-1.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:7c6092102219f59ff29788860ccb021e80fffd953920c4a8653889c029b2d420"}, - {file = "PyNaCl-1.4.0.tar.gz", hash = "sha256:54e9a2c849c742006516ad56a88f5c74bf2ce92c9f67435187c3c5953b346505"}, -] -pyparsing = [ - {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, - {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, -] -pytest = [ - {file = "pytest-7.0.1-py3-none-any.whl", hash = "sha256:9ce3ff477af913ecf6321fe337b93a2c0dcf2a0a1439c43f5452112c1e4280db"}, - {file = "pytest-7.0.1.tar.gz", hash = "sha256:e30905a0c131d3d94b89624a1cc5afec3e0ba2fbdb151867d8e0ebd49850f171"}, -] -pytest-testinfra = [ - {file = "pytest-testinfra-6.6.0.tar.gz", hash = "sha256:c2c0af72e51d84f72306045b551a91ac8a2cef2ca1fa87636ee64ceaa0f219c5"}, - {file = "pytest_testinfra-6.6.0-py3-none-any.whl", hash = "sha256:3aac5453a8b0e61b00539d8560442e862ce04ce1e31d08fd44500a4e43d3a989"}, -] -python-dateutil = [ - {file = "python-dateutil-2.8.1.tar.gz", hash = "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c"}, - {file = "python_dateutil-2.8.1-py2.py3-none-any.whl", hash = "sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a"}, -] -python-slugify = [ - {file = "python-slugify-4.0.1.tar.gz", hash = "sha256:69a517766e00c1268e5bbfc0d010a0a8508de0b18d30ad5a1ff357f8ae724270"}, -] -pywin32 = [ - {file = "pywin32-227-cp27-cp27m-win32.whl", hash = "sha256:371fcc39416d736401f0274dd64c2302728c9e034808e37381b5e1b22be4a6b0"}, - {file = "pywin32-227-cp27-cp27m-win_amd64.whl", hash = "sha256:4cdad3e84191194ea6d0dd1b1b9bdda574ff563177d2adf2b4efec2a244fa116"}, - {file = "pywin32-227-cp35-cp35m-win32.whl", hash = "sha256:f4c5be1a293bae0076d93c88f37ee8da68136744588bc5e2be2f299a34ceb7aa"}, - {file = "pywin32-227-cp35-cp35m-win_amd64.whl", hash = "sha256:a929a4af626e530383a579431b70e512e736e9588106715215bf685a3ea508d4"}, - {file = "pywin32-227-cp36-cp36m-win32.whl", hash = "sha256:300a2db938e98c3e7e2093e4491439e62287d0d493fe07cce110db070b54c0be"}, - {file = "pywin32-227-cp36-cp36m-win_amd64.whl", hash = "sha256:9b31e009564fb95db160f154e2aa195ed66bcc4c058ed72850d047141b36f3a2"}, - {file = "pywin32-227-cp37-cp37m-win32.whl", hash = "sha256:47a3c7551376a865dd8d095a98deba954a98f326c6fe3c72d8726ca6e6b15507"}, - {file = "pywin32-227-cp37-cp37m-win_amd64.whl", hash = "sha256:31f88a89139cb2adc40f8f0e65ee56a8c585f629974f9e07622ba80199057511"}, - {file = "pywin32-227-cp38-cp38-win32.whl", hash = "sha256:7f18199fbf29ca99dff10e1f09451582ae9e372a892ff03a28528a24d55875bc"}, - {file = "pywin32-227-cp38-cp38-win_amd64.whl", hash = "sha256:7c1ae32c489dc012930787f06244426f8356e129184a02c25aef163917ce158e"}, - {file = "pywin32-227-cp39-cp39-win32.whl", hash = "sha256:c054c52ba46e7eb6b7d7dfae4dbd987a1bb48ee86debe3f245a2884ece46e295"}, - {file = "pywin32-227-cp39-cp39-win_amd64.whl", hash = "sha256:f27cec5e7f588c3d1051651830ecc00294f90728d19c3bf6916e6dba93ea357c"}, -] -pyyaml = [ - {file = "PyYAML-5.4-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:f7a21e3d99aa3095ef0553e7ceba36fb693998fbb1226f1392ce33681047465f"}, - {file = "PyYAML-5.4-cp27-cp27m-win32.whl", hash = "sha256:52bf0930903818e600ae6c2901f748bc4869c0c406056f679ab9614e5d21a166"}, - {file = "PyYAML-5.4-cp27-cp27m-win_amd64.whl", hash = "sha256:a36a48a51e5471513a5aea920cdad84cbd56d70a5057cca3499a637496ea379c"}, - {file = "PyYAML-5.4-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:5e7ac4e0e79a53451dc2814f6876c2fa6f71452de1498bbe29c0b54b69a986f4"}, - {file = "PyYAML-5.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cc552b6434b90d9dbed6a4f13339625dc466fd82597119897e9489c953acbc22"}, - {file = "PyYAML-5.4-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0dc9f2eb2e3c97640928dec63fd8dc1dd91e6b6ed236bd5ac00332b99b5c2ff9"}, - {file = "PyYAML-5.4-cp36-cp36m-win32.whl", hash = "sha256:5a3f345acff76cad4aa9cb171ee76c590f37394186325d53d1aa25318b0d4a09"}, - {file = "PyYAML-5.4-cp36-cp36m-win_amd64.whl", hash = "sha256:f3790156c606299ff499ec44db422f66f05a7363b39eb9d5b064f17bd7d7c47b"}, - {file = "PyYAML-5.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:124fd7c7bc1e95b1eafc60825f2daf67c73ce7b33f1194731240d24b0d1bf628"}, - {file = "PyYAML-5.4-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:8b818b6c5a920cbe4203b5a6b14256f0e5244338244560da89b7b0f1313ea4b6"}, - {file = "PyYAML-5.4-cp37-cp37m-win32.whl", hash = "sha256:737bd70e454a284d456aa1fa71a0b429dd527bcbf52c5c33f7c8eee81ac16b89"}, - {file = "PyYAML-5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:7242790ab6c20316b8e7bb545be48d7ed36e26bbe279fd56f2c4a12510e60b4b"}, - {file = "PyYAML-5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cc547d3ead3754712223abb7b403f0a184e4c3eae18c9bb7fd15adef1597cc4b"}, - {file = "PyYAML-5.4-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:8635d53223b1f561b081ff4adecb828fd484b8efffe542edcfdff471997f7c39"}, - {file = "PyYAML-5.4-cp38-cp38-win32.whl", hash = "sha256:26fcb33776857f4072601502d93e1a619f166c9c00befb52826e7b774efaa9db"}, - {file = "PyYAML-5.4-cp38-cp38-win_amd64.whl", hash = "sha256:b2243dd033fd02c01212ad5c601dafb44fbb293065f430b0d3dbf03f3254d615"}, - {file = "PyYAML-5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:31ba07c54ef4a897758563e3a0fcc60077698df10180abe4b8165d9895c00ebf"}, - {file = "PyYAML-5.4-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:02c78d77281d8f8d07a255e57abdbf43b02257f59f50cc6b636937d68efa5dd0"}, - {file = "PyYAML-5.4-cp39-cp39-win32.whl", hash = "sha256:fdc6b2cb4b19e431994f25a9160695cc59a4e861710cc6fc97161c5e845fc579"}, - {file = "PyYAML-5.4-cp39-cp39-win_amd64.whl", hash = "sha256:8bf38641b4713d77da19e91f8b5296b832e4db87338d6aeffe422d42f1ca896d"}, - {file = "PyYAML-5.4.tar.gz", hash = "sha256:3c49e39ac034fd64fd576d63bb4db53cda89b362768a67f07749d55f128ac18a"}, -] -requests = [ - {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"}, - {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"}, -] -resolvelib = [ - {file = "resolvelib-0.5.5-py2.py3-none-any.whl", hash = "sha256:b0143b9d074550a6c5163a0f587e49c49017434e3cdfe853941725f5455dd29c"}, - {file = "resolvelib-0.5.5.tar.gz", hash = "sha256:123de56548c90df85137425a3f51eb93df89e2ba719aeb6a8023c032758be950"}, -] -rich = [ - {file = "rich-10.11.0-py3-none-any.whl", hash = "sha256:44bb3f9553d00b3c8938abf89828df870322b9ba43caf3b12bb7758debdc6dec"}, - {file = "rich-10.11.0.tar.gz", hash = "sha256:016fa105f34b69c434e7f908bb5bd7fefa9616efdb218a2917117683a6394ce5"}, -] -"ruamel.yaml" = [ - {file = "ruamel.yaml-0.16.12-py2.py3-none-any.whl", hash = "sha256:012b9470a0ea06e4e44e99e7920277edf6b46eee0232a04487ea73a7386340a5"}, - {file = "ruamel.yaml-0.16.12.tar.gz", hash = "sha256:076cc0bc34f1966d920a49f18b52b6ad559fbe656a0748e3535cf7b3f29ebf9e"}, -] -"ruamel.yaml.clib" = [ - {file = "ruamel.yaml.clib-0.2.2-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:28116f204103cb3a108dfd37668f20abe6e3cafd0d3fd40dba126c732457b3cc"}, - {file = "ruamel.yaml.clib-0.2.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:daf21aa33ee9b351f66deed30a3d450ab55c14242cfdfcd377798e2c0d25c9f1"}, - {file = "ruamel.yaml.clib-0.2.2-cp27-cp27m-win32.whl", hash = "sha256:30dca9bbcbb1cc858717438218d11eafb78666759e5094dd767468c0d577a7e7"}, - {file = "ruamel.yaml.clib-0.2.2-cp27-cp27m-win_amd64.whl", hash = "sha256:f6061a31880c1ed6b6ce341215336e2f3d0c1deccd84957b6fa8ca474b41e89f"}, - {file = "ruamel.yaml.clib-0.2.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:73b3d43e04cc4b228fa6fa5d796409ece6fcb53a6c270eb2048109cbcbc3b9c2"}, - {file = "ruamel.yaml.clib-0.2.2-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:53b9dd1abd70e257a6e32f934ebc482dac5edb8c93e23deb663eac724c30b026"}, - {file = "ruamel.yaml.clib-0.2.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:839dd72545ef7ba78fd2aa1a5dd07b33696adf3e68fae7f31327161c1093001b"}, - {file = "ruamel.yaml.clib-0.2.2-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:1236df55e0f73cd138c0eca074ee086136c3f16a97c2ac719032c050f7e0622f"}, - {file = "ruamel.yaml.clib-0.2.2-cp35-cp35m-win32.whl", hash = "sha256:b1e981fe1aff1fd11627f531524826a4dcc1f26c726235a52fcb62ded27d150f"}, - {file = "ruamel.yaml.clib-0.2.2-cp35-cp35m-win_amd64.whl", hash = "sha256:4e52c96ca66de04be42ea2278012a2342d89f5e82b4512fb6fb7134e377e2e62"}, - {file = "ruamel.yaml.clib-0.2.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a873e4d4954f865dcb60bdc4914af7eaae48fb56b60ed6daa1d6251c72f5337c"}, - {file = "ruamel.yaml.clib-0.2.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:ab845f1f51f7eb750a78937be9f79baea4a42c7960f5a94dde34e69f3cce1988"}, - {file = "ruamel.yaml.clib-0.2.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:2fd336a5c6415c82e2deb40d08c222087febe0aebe520f4d21910629018ab0f3"}, - {file = "ruamel.yaml.clib-0.2.2-cp36-cp36m-win32.whl", hash = "sha256:e9f7d1d8c26a6a12c23421061f9022bb62704e38211fe375c645485f38df34a2"}, - {file = "ruamel.yaml.clib-0.2.2-cp36-cp36m-win_amd64.whl", hash = "sha256:2602e91bd5c1b874d6f93d3086f9830f3e907c543c7672cf293a97c3fabdcd91"}, - {file = "ruamel.yaml.clib-0.2.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:44c7b0498c39f27795224438f1a6be6c5352f82cb887bc33d962c3a3acc00df6"}, - {file = "ruamel.yaml.clib-0.2.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:8e8fd0a22c9d92af3a34f91e8a2594eeb35cba90ab643c5e0e643567dc8be43e"}, - {file = "ruamel.yaml.clib-0.2.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:75f0ee6839532e52a3a53f80ce64925ed4aed697dd3fa890c4c918f3304bd4f4"}, - {file = "ruamel.yaml.clib-0.2.2-cp37-cp37m-win32.whl", hash = "sha256:464e66a04e740d754170be5e740657a3b3b6d2bcc567f0c3437879a6e6087ff6"}, - {file = "ruamel.yaml.clib-0.2.2-cp37-cp37m-win_amd64.whl", hash = "sha256:52ae5739e4b5d6317b52f5b040b1b6639e8af68a5b8fd606a8b08658fbd0cab5"}, - {file = "ruamel.yaml.clib-0.2.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4df5019e7783d14b79217ad9c56edf1ba7485d614ad5a385d1b3c768635c81c0"}, - {file = "ruamel.yaml.clib-0.2.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:5254af7d8bdf4d5484c089f929cb7f5bafa59b4f01d4f48adda4be41e6d29f99"}, - {file = "ruamel.yaml.clib-0.2.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:8be05be57dc5c7b4a0b24edcaa2f7275866d9c907725226cdde46da09367d923"}, - {file = "ruamel.yaml.clib-0.2.2-cp38-cp38-win32.whl", hash = "sha256:74161d827407f4db9072011adcfb825b5258a5ccb3d2cd518dd6c9edea9e30f1"}, - {file = "ruamel.yaml.clib-0.2.2-cp38-cp38-win_amd64.whl", hash = "sha256:058a1cc3df2a8aecc12f983a48bda99315cebf55a3b3a5463e37bb599b05727b"}, - {file = "ruamel.yaml.clib-0.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c6ac7e45367b1317e56f1461719c853fd6825226f45b835df7436bb04031fd8a"}, - {file = "ruamel.yaml.clib-0.2.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:b4b0d31f2052b3f9f9b5327024dc629a253a83d8649d4734ca7f35b60ec3e9e5"}, - {file = "ruamel.yaml.clib-0.2.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:1f8c0a4577c0e6c99d208de5c4d3fd8aceed9574bb154d7a2b21c16bb924154c"}, - {file = "ruamel.yaml.clib-0.2.2-cp39-cp39-win32.whl", hash = "sha256:46d6d20815064e8bb023ea8628cfb7402c0f0e83de2c2227a88097e239a7dffd"}, - {file = "ruamel.yaml.clib-0.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:6c0a5dc52fc74eb87c67374a4e554d4761fd42a4d01390b7e868b30d21f4b8bb"}, - {file = "ruamel.yaml.clib-0.2.2.tar.gz", hash = "sha256:2d24bd98af676f4990c4d715bcdc2a60b19c56a3fb3a763164d2d8ca0e806ba7"}, -] -selinux = [ - {file = "selinux-0.2.1-py2.py3-none-any.whl", hash = "sha256:820adcf1b4451c9cc7759848797703263ba0eb6a4cad76d73548a9e0d57b7926"}, - {file = "selinux-0.2.1.tar.gz", hash = "sha256:d435f514e834e3fdc0941f6a29d086b80b2ea51b28112aee6254bd104ee42a74"}, -] -six = [ - {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, - {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, -] -subprocess-tee = [ - {file = "subprocess-tee-0.3.5.tar.gz", hash = "sha256:ff5cced589a4b8ac973276ca1ba21bb6e3de600cde11a69947ff51f696efd577"}, - {file = "subprocess_tee-0.3.5-py3-none-any.whl", hash = "sha256:d34186c639aa7f8013b5dfba80e17f52589539137c9d9205f2ae1c1bd03549e1"}, -] -tenacity = [ - {file = "tenacity-8.0.1-py3-none-any.whl", hash = "sha256:f78f4ea81b0fabc06728c11dc2a8c01277bfc5181b321a4770471902e3eb844a"}, - {file = "tenacity-8.0.1.tar.gz", hash = "sha256:43242a20e3e73291a28bcbcacfd6e000b02d3857a9a9fff56b297a27afdc932f"}, -] -testinfra = [ - {file = "testinfra-6.0.0-py3-none-any.whl", hash = "sha256:1a75b5025dbe82ffedec50afeaf9a7f96a8cd1e294f0d40de3a089a369ceae0e"}, - {file = "testinfra-6.0.0.tar.gz", hash = "sha256:4225d36e4bb02eb1618429325280c4b62a18cea8a90c91564ee0cc1d31ca331a"}, -] -text-unidecode = [ - {file = "text-unidecode-1.3.tar.gz", hash = "sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93"}, - {file = "text_unidecode-1.3-py2.py3-none-any.whl", hash = "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8"}, -] -tomli = [ - {file = "tomli-1.2.3-py3-none-any.whl", hash = "sha256:e3069e4be3ead9668e21cb9b074cd948f7b3113fd9c8bba083f48247aab8b11c"}, - {file = "tomli-1.2.3.tar.gz", hash = "sha256:05b6166bff487dc068d322585c7ea4ef78deed501cc124060e0f238e89a9231f"}, -] -typing-extensions = [ - {file = "typing_extensions-3.7.4.3-py2-none-any.whl", hash = "sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f"}, - {file = "typing_extensions-3.7.4.3-py3-none-any.whl", hash = "sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918"}, - {file = "typing_extensions-3.7.4.3.tar.gz", hash = "sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c"}, -] -urllib3 = [ - {file = "urllib3-1.26.5-py2.py3-none-any.whl", hash = "sha256:753a0374df26658f99d826cfe40394a686d05985786d946fbe4165b5148f5a7c"}, - {file = "urllib3-1.26.5.tar.gz", hash = "sha256:a7acd0977125325f516bda9735fa7142b909a8d01e8b2e4c8108d0984e6e0098"}, -] -wcmatch = [ - {file = "wcmatch-8.3-py3-none-any.whl", hash = "sha256:7141d2c85314253f16b38cb3d6cc0fb612918d407e1df3ccc2be7c86cc259c22"}, - {file = "wcmatch-8.3.tar.gz", hash = "sha256:371072912398af61d1e4e78609e18801c6faecd3cb36c54c82556a60abc965db"}, -] -websocket-client = [ - {file = "websocket_client-0.57.0-py2.py3-none-any.whl", hash = "sha256:0fc45c961324d79c781bab301359d5a1b00b13ad1b10415a4780229ef71a5549"}, - {file = "websocket_client-0.57.0.tar.gz", hash = "sha256:d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010"}, -] -yamllint = [ - {file = "yamllint-1.26.3.tar.gz", hash = "sha256:3934dcde484374596d6b52d8db412929a169f6d9e52e20f9ade5bf3523d9b96e"}, -] -zipp = [ - {file = "zipp-3.4.0-py3-none-any.whl", hash = "sha256:102c24ef8f171fd729d46599845e95c7ab894a4cf45f5de11a44cc7444fb1108"}, - {file = "zipp-3.4.0.tar.gz", hash = "sha256:ed5eee1974372595f9e416cc7bbeeb12335201d8081ca8a0743c954d4446e5cb"}, -] diff --git a/pyproject.toml b/pyproject.toml deleted file mode 100644 index e0825ad76..000000000 --- a/pyproject.toml +++ /dev/null @@ -1,28 +0,0 @@ -[tool.poetry] -name = "wazuh-ansible" -version = "4.4.0" -description = "" -authors = ["neonmei "] - -[tool.poetry.dependencies] -python = "^3.6" - -# Pin ansible version to that currently present on awx -ansible = "==4.10.0" -jinja2 = "^3.0.3" - -[tool.poetry.dev-dependencies] -pytest = "^7.0" -ansible-lint = "^5.4.0" -flake8 = "^4.0.1" -selinux = "^0.2.1" -yamllint = "^1.26.3" - -# minimum version is 3.0.3, because we need docker memory limitation -# https://github.com/ansible-community/molecule/pull/2615 -molecule = {extras = ["docker"], version = "==3.3.4"} -testinfra = "^6.0.0" - -[build-system] -requires = ["poetry>=1.1.8"] -build-backend = "poetry.masonry.api" From 8053f0db69f247551bf352b526cd8a9aeeec0396 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Wed, 1 Feb 2023 09:44:36 -0300 Subject: [PATCH 25/25] Termination date updated for workflow EC2 instances --- .github/workflows/al_aio.yml | 2 +- .github/workflows/al_wazuh.yml | 2 +- .github/workflows/centos_aio.yml | 2 +- .github/workflows/centos_wazuh.yml | 2 +- .github/workflows/ubuntu_aio.yml | 2 +- .github/workflows/ubuntu_wazuh.yml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/al_aio.yml b/.github/workflows/al_aio.yml index 6e8f2a684..cd121303c 100644 --- a/.github/workflows/al_aio.yml +++ b/.github/workflows/al_aio.yml @@ -30,7 +30,7 @@ jobs: {"Key": "Name", "Value": "wazuh-ansible-gh-runner-aio"}, {"Key": "GitHubRepository", "Value": "${{ github.repository }}"}, {"Key": "team", "Value": "CICD"}, - {"Key": "termination_Date", "Value": "N/A"} + {"Key": "termination_date", "Value": "2022-12-31 21:00:00"} ] install-aio-single-instance: name: Installs AIO single instance diff --git a/.github/workflows/al_wazuh.yml b/.github/workflows/al_wazuh.yml index c5405f13c..8200e866b 100644 --- a/.github/workflows/al_wazuh.yml +++ b/.github/workflows/al_wazuh.yml @@ -30,7 +30,7 @@ jobs: {"Key": "Name", "Value": "wazuh-ansible-gh-runner-wazuh"}, {"Key": "GitHubRepository", "Value": "${{ github.repository }}"}, {"Key": "team", "Value": "CICD"}, - {"Key": "termination_Date", "Value": "N/A"} + {"Key": "termination_date", "Value": "2022-12-31 21:00:00"} ] install-wazuh-single-instance: name: Installs Wazuh server single instance diff --git a/.github/workflows/centos_aio.yml b/.github/workflows/centos_aio.yml index 601934e34..0d03a1684 100644 --- a/.github/workflows/centos_aio.yml +++ b/.github/workflows/centos_aio.yml @@ -30,7 +30,7 @@ jobs: {"Key": "Name", "Value": "wazuh-ansible-gh-runner-aio"}, {"Key": "GitHubRepository", "Value": "${{ github.repository }}"}, {"Key": "team", "Value": "CICD"}, - {"Key": "termination_Date", "Value": "N/A"} + {"Key": "termination_date", "Value": "2022-12-31 21:00:00"} ] install-aio-single-instance: name: Installs AIO single instance diff --git a/.github/workflows/centos_wazuh.yml b/.github/workflows/centos_wazuh.yml index 43221a650..17e90e397 100644 --- a/.github/workflows/centos_wazuh.yml +++ b/.github/workflows/centos_wazuh.yml @@ -30,7 +30,7 @@ jobs: {"Key": "Name", "Value": "wazuh-ansible-gh-runner-wazuh"}, {"Key": "GitHubRepository", "Value": "${{ github.repository }}"}, {"Key": "team", "Value": "CICD"}, - {"Key": "termination_Date", "Value": "N/A"} + {"Key": "termination_date", "Value": "2022-12-31 21:00:00"} ] install-wazuh-single-instance: name: Installs Wazuh server single instance diff --git a/.github/workflows/ubuntu_aio.yml b/.github/workflows/ubuntu_aio.yml index 0cf475734..05eb37787 100644 --- a/.github/workflows/ubuntu_aio.yml +++ b/.github/workflows/ubuntu_aio.yml @@ -30,7 +30,7 @@ jobs: {"Key": "Name", "Value": "wazuh-ansible-gh-runner-aio"}, {"Key": "GitHubRepository", "Value": "${{ github.repository }}"}, {"Key": "team", "Value": "CICD"}, - {"Key": "termination_Date", "Value": "N/A"} + {"Key": "termination_date", "Value": "2022-12-31 21:00:00"} ] install-aio-single-instance: name: Installs AIO single instance diff --git a/.github/workflows/ubuntu_wazuh.yml b/.github/workflows/ubuntu_wazuh.yml index b7542e27b..64db955ef 100644 --- a/.github/workflows/ubuntu_wazuh.yml +++ b/.github/workflows/ubuntu_wazuh.yml @@ -30,7 +30,7 @@ jobs: {"Key": "Name", "Value": "wazuh-ansible-gh-runner-wazuh"}, {"Key": "GitHubRepository", "Value": "${{ github.repository }}"}, {"Key": "team", "Value": "CICD"}, - {"Key": "termination_Date", "Value": "N/A"} + {"Key": "termination_date", "Value": "2022-12-31 21:00:00"} ] install-wazuh-single-instance: name: Installs Wazuh server single instance