├── .lycheeignore ├── .spelling ├── handlers └── main.yml ├── .markdownlint.yml ├── .ansible-lint.yml ├── .checkov.yml ├── .gitignore ├── molecule_tests.sh ├── SECURITY.md ├── .github ├── ISSUE_TEMPLATE │ ├── config.yml │ ├── bug_report.md │ └── proposal.md ├── CODEOWNERS ├── workflows │ ├── semantic-pull-request.yml │ ├── release-please.yml │ ├── scorecards.yml │ ├── release-ansible-galaxy.yml │ ├── stale.yml │ ├── molecule.yml │ ├── codeql-actions.yml │ ├── mega-linter.yml │ ├── markdown-check.yml │ ├── renovate.yml │ └── pr-slack-notification.yml └── renovate.json5 ├── templates ├── 80proxy.j2 ├── proxy.j2 └── proxy.sh.j2 ├── defaults └── main.yml ├── molecule └── default │ ├── molecule.yml │ └── converge.yml ├── LICENSE ├── lychee.toml ├── README.md ├── .mega-linter.yml ├── meta └── main.yml ├── tasks └── main.yml └── CHANGELOG.md /.lycheeignore: -------------------------------------------------------------------------------- 1 | http://proxysrv 2 | -------------------------------------------------------------------------------- /.spelling: -------------------------------------------------------------------------------- 1 | Ansible 2 | gmail.com 3 | i 4 | Playbook 5 | proxy_settings 6 | Suse 7 | u 8 | -------------------------------------------------------------------------------- /handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: Systemd daemon-reload 2 | ansible.builtin.systemd: 3 | daemon_reload: true 4 | -------------------------------------------------------------------------------- /.markdownlint.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Line length - https://github.com/DavidAnson/markdownlint/blob/master/doc/Rules.md#md013---line-length 3 | MD013: 4 | code_blocks: false 5 | tables: false 6 | -------------------------------------------------------------------------------- /.ansible-lint.yml: -------------------------------------------------------------------------------- 1 | skip_list: 2 | # Role name virtio-win does not match ``^[a-z][a-z0-9_]+$`` pattern 3 | - role-name 4 | # Lines should be no longer than 160 chars 5 | - yaml[line-length] 6 | -------------------------------------------------------------------------------- /.checkov.yml: -------------------------------------------------------------------------------- 1 | skip-check: 2 | # The build output cannot be affected by user parameters other than the build entry point and the top-level source location. GitHub Actions workflow_dispatch inputs MUST be empty 3 | - CKV_GHA_7 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # keep-sorted start newline_separated=yes 2 | *.py[cod] 3 | 4 | # Python byte-compiled / optimized files 5 | *__pycache__/ 6 | 7 | # pre-commit config file 8 | .pre-commit-config.yaml 9 | # keep-sorted end 10 | -------------------------------------------------------------------------------- /molecule_tests.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -eu 2 | 3 | MOLECULE_DISTROS="centos7 centos6 ubuntu1804 ubuntu1604 ubuntu1404 ubuntu1204 debian9 debian8 fedora27" 4 | 5 | for MOLECULE_DISTRO in $MOLECULE_DISTROS; do 6 | echo "*** $MOLECULE_DISTRO" 7 | export MOLECULE_DISTRO 8 | molecule test 9 | done 10 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Reporting a Vulnerability 4 | 5 | To report a security issue, please email [petr.ruzicka@gmail.com](mailto:petr.ruzicka@gmail.com) 6 | with a description of the issue, the steps you took to create the issue, 7 | affected versions, and, if known, mitigations for the issue. This project 8 | follows a 90 day disclosure timeline. 9 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: GitHub Actions Community Forum 4 | url: https://github.com/orgs/community/discussions/ 5 | about: Please ask questions about GitHub Actions here. 6 | - name: GitHub Pages help 7 | url: https://help.github.com/en/github/working-with-github-pages 8 | about: GitHub Pages documentation here. 9 | -------------------------------------------------------------------------------- /templates/80proxy.j2: -------------------------------------------------------------------------------- 1 | # 2 | # {{ ansible_managed }} 3 | # 4 | {% if proxy_settings_http_proxy is defined %} 5 | Acquire::http::proxy "{{ proxy_settings_http_proxy }}"; 6 | {% endif %} 7 | {% if proxy_settings_ftp_proxy is defined %} 8 | Acquire::ftp::proxy "{{ proxy_settings_ftp_proxy }}"; 9 | {% endif %} 10 | {% if proxy_settings_https_proxy is defined %} 11 | Acquire::https::proxy "{{ proxy_settings_https_proxy }}"; 12 | {% endif %} 13 | -------------------------------------------------------------------------------- /defaults/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # defaults file for proxy_settings 3 | 4 | # proxy_settings_http_proxy: 'http://myuser:********@px01.example.com:3128' 5 | # proxy_settings_ftp_proxy: 'http://proxy.example.com:8080' 6 | # proxy_settings_https_proxy: 'http://px01.example.com:3128' 7 | # proxy_settings_no_proxy: 'example.com,192.168.122.1' 8 | # proxy_settings_yum_proxy: 'http://proxysrv:8080' 9 | # proxy_settings_yum_proxy_username: 'myuser' 10 | # proxy_settings_yum_proxy_password: '********' 11 | -------------------------------------------------------------------------------- /templates/proxy.j2: -------------------------------------------------------------------------------- 1 | # 2 | # {{ ansible_managed }} 3 | # 4 | PROXY_ENABLED="yes" 5 | {% if proxy_settings_http_proxy is defined %} 6 | HTTP_PROXY="{{ proxy_settings_http_proxy }}" 7 | {% endif %} 8 | {% if proxy_settings_ftp_proxy is defined %} 9 | FTP_PROXY="{{ proxy_settings_ftp_proxy }}" 10 | {% endif %} 11 | {% if proxy_settings_https_proxy is defined %} 12 | HTTPS_PROXY="{{ proxy_settings_https_proxy }}" 13 | {% endif %} 14 | {% if proxy_settings_no_proxy is defined %} 15 | NO_PROXY="{{ proxy_settings_no_proxy }}" 16 | {% endif %} 17 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # GitHub CODEOWNERS file 2 | # Documentation: 3 | # - https://help.github.com/articles/about-code-owners/ 4 | # - https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners 5 | 6 | # Syntax: 7 | # pattern @user-or-team 8 | # The last matching pattern takes precedence. 9 | 10 | ############################### 11 | # Repository Default Owners 12 | ############################### 13 | # These owners will be the default owners for everything in the repo 14 | * @ruzickap 15 | -------------------------------------------------------------------------------- /molecule/default/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | role_name_check: 1 3 | dependency: 4 | name: galaxy 5 | options: 6 | ignore-errors: true 7 | driver: 8 | name: docker 9 | platforms: 10 | - name: instance 11 | image: geerlingguy/docker-${MOLECULE_DISTRO:-rockylinux8}-ansible:latest 12 | command: ${MOLECULE_DOCKER_COMMAND:-""} 13 | volumes: 14 | - /sys/fs/cgroup:/sys/fs/cgroup:rw 15 | cgroupns_mode: host 16 | privileged: true 17 | pre_build_image: true 18 | provisioner: 19 | name: ansible 20 | playbooks: 21 | converge: ${MOLECULE_PLAYBOOK:-converge.yml} 22 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: "Bug: This is a sample issue title" 5 | labels: bug 6 | assignees: ruzickap 7 | --- 8 | 9 | **Describe the bug** 10 | A clear and concise description of what the bug is. 11 | 12 | **To Reproduce** 13 | Steps to reproduce the behaviour. 14 | 15 | **Expected behaviour** 16 | A clear and concise description of what you expected to happen. 17 | 18 | **Screenshots** 19 | If applicable, add screenshots to help explain your problem. 20 | 21 | **Additional context** 22 | Add any other context about the problem here. 23 | -------------------------------------------------------------------------------- /molecule/default/converge.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | 5 | vars: 6 | # kics-scan ignore-line 7 | proxy_settings_http_proxy: "http://myuser:********@px01.example.com:3128" 8 | proxy_settings_ftp_proxy: "http://proxy.example.com:8080" 9 | proxy_settings_https_proxy: "http://px01.example.com:3128" 10 | proxy_settings_no_proxy: "example.com,192.168.122.1" 11 | proxy_settings_yum_proxy: "http://proxysrv:8080" 12 | proxy_settings_yum_proxy_username: "myuser" 13 | # kics-scan ignore-line 14 | proxy_settings_yum_proxy_password: "********" 15 | 16 | roles: 17 | - role: ruzickap.proxy_settings 18 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/proposal.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Proposal 3 | about: Suggest an idea for this project 4 | title: "Proposal: This is a sample title" 5 | labels: proposal 6 | assignees: ruzickap 7 | --- 8 | 9 | **Is your feature request related to a problem? Please describe** 10 | A clear and concise description of what the problem is. Ex. I'm always 11 | frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /templates/proxy.sh.j2: -------------------------------------------------------------------------------- 1 | # 2 | # {{ ansible_managed }} 3 | # 4 | {% if proxy_settings_http_proxy is defined %} 5 | export http_proxy="{{ proxy_settings_http_proxy }}" 6 | export HTTP_PROXY="{{ proxy_settings_http_proxy }}" 7 | {% endif %} 8 | {% if proxy_settings_ftp_proxy is defined %} 9 | export ftp_proxy="{{ proxy_settings_ftp_proxy }}" 10 | export FTP_PROXY="{{ proxy_settings_ftp_proxy }}" 11 | {% endif %} 12 | {% if proxy_settings_https_proxy is defined %} 13 | export https_proxy="{{ proxy_settings_https_proxy }}" 14 | export HTTPS_PROXY="{{ proxy_settings_https_proxy }}" 15 | {% endif %} 16 | {% if proxy_settings_no_proxy is defined %} 17 | export no_proxy="{{ proxy_settings_no_proxy }}" 18 | export NO_PROXY="{{ proxy_settings_no_proxy }}" 19 | {% endif %} 20 | -------------------------------------------------------------------------------- /.github/workflows/semantic-pull-request.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: semantic-pull-request 3 | 4 | on: 5 | workflow_dispatch: 6 | pull_request_target: 7 | types: 8 | - opened 9 | - edited 10 | - synchronize 11 | 12 | permissions: 13 | pull-requests: read 14 | 15 | jobs: 16 | semantic-pull-request: 17 | runs-on: ubuntu-latest 18 | steps: 19 | - uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6 20 | id: app-token 21 | with: 22 | app-id: ${{ secrets.MY_RENOVATE_GITHUB_APP_ID }} 23 | private-key: ${{ secrets.MY_RENOVATE_GITHUB_PRIVATE_KEY }} 24 | 25 | - uses: amannn/action-semantic-pull-request@0723387faaf9b38adef4775cd42cfd5155ed6017 # v5.5.3 26 | env: 27 | GITHUB_TOKEN: ${{ steps.app-token.outputs.token }} 28 | -------------------------------------------------------------------------------- /.github/workflows/release-please.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: release-please 3 | 4 | on: 5 | workflow_dispatch: 6 | push: 7 | branches: 8 | - main 9 | 10 | permissions: read-all 11 | 12 | jobs: 13 | release-please: 14 | runs-on: ubuntu-latest 15 | permissions: 16 | contents: write 17 | pull-requests: write 18 | steps: 19 | - uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6 20 | id: app-token 21 | with: 22 | app-id: ${{ secrets.MY_RENOVATE_GITHUB_APP_ID }} 23 | private-key: ${{ secrets.MY_RENOVATE_GITHUB_PRIVATE_KEY }} 24 | 25 | - uses: googleapis/release-please-action@a02a34c4d625f9be7cb89156071d8567266a2445 # v4.2.0 26 | with: 27 | release-type: simple 28 | token: ${{ steps.app-token.outputs.token }} 29 | -------------------------------------------------------------------------------- /.github/workflows/scorecards.yml: -------------------------------------------------------------------------------- 1 | name: scorecards 2 | on: 3 | workflow_dispatch: 4 | push: 5 | branches: 6 | - main 7 | schedule: 8 | - cron: 30 1 * * 6 9 | 10 | permissions: read-all 11 | 12 | jobs: 13 | analysis: 14 | name: Scorecard analysis 15 | runs-on: ubuntu-latest 16 | permissions: 17 | security-events: write 18 | id-token: write 19 | 20 | steps: 21 | - name: Checkout code 22 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 23 | with: 24 | persist-credentials: false 25 | 26 | - name: Run analysis 27 | uses: ossf/scorecard-action@f49aabe0b5af0936a0987cfb85d86b75731b0186 # v2.4.1 28 | with: 29 | results_file: results.sarif 30 | results_format: sarif 31 | publish_results: true 32 | 33 | - name: Upload to code-scanning 34 | uses: github/codeql-action/upload-sarif@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3.28.17 35 | with: 36 | sarif_file: results.sarif 37 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Petr Ruzicka 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.github/workflows/release-ansible-galaxy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # This workflow requires a GALAXY_API_KEY secret present in the GitHub 3 | # repository or organization. 4 | # 5 | # See: https://github.com/marketplace/actions/publish-ansible-role-to-galaxy 6 | # See: https://github.com/ansible/galaxy/issues/46 7 | 8 | name: release-ansible-galaxy 9 | 10 | on: 11 | workflow_dispatch: 12 | release: 13 | types: 14 | - published 15 | 16 | permissions: read-all 17 | 18 | jobs: 19 | release: 20 | name: Release 21 | runs-on: ubuntu-latest 22 | steps: 23 | - name: Check out the codebase 24 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 25 | with: 26 | path: ${{ github.event.repository.name }} 27 | 28 | - name: Set up Python 3 29 | uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 30 | with: 31 | python-version: 3.x 32 | 33 | - name: Install Ansible 34 | run: pip3 install ansible-base 35 | 36 | - name: Trigger a new import on Galaxy 37 | env: 38 | GALAXY_API_KEY: ${{ secrets.GALAXY_API_KEY }} 39 | run: | 40 | cd "${GITHUB_REPOSITORY#*/}" 41 | ansible-galaxy role import \ 42 | --api-key "${GALAXY_API_KEY}" "${GITHUB_REPOSITORY%/*}" "${GITHUB_REPOSITORY##*/}" 43 | -------------------------------------------------------------------------------- /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: stale 3 | 4 | on: 5 | workflow_dispatch: 6 | schedule: 7 | - cron: 9 9 * * * 8 | 9 | permissions: 10 | issues: write 11 | pull-requests: write 12 | 13 | jobs: 14 | stale: 15 | runs-on: ubuntu-latest 16 | steps: 17 | - uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0 18 | with: 19 | # keep-sorted start 20 | close-issue-message: | 21 | This issue has not seen any activity since it was marked stale. 22 | Closing. 23 | close-pr-message: | 24 | This pull request has not seen any activity since it was marked stale. 25 | Closing. 26 | exempt-issue-labels: good-first-issue,need-help,no-stale,pinned,security 27 | exempt-pr-labels: "autorelease: pending,good-first-issue,need-help,no-stale,pinned,security" 28 | stale-issue-label: stale 29 | stale-issue-message: | 30 | This issue is stale because it has been open 60 days with no activity. 31 | Remove stale label or comment or this will be closed in 7 days 32 | stale-pr-label: stale 33 | stale-pr-message: | 34 | This PR is stale because it has been open 60 days with no activity. 35 | Remove stale label or comment or this will be closed in 7 days. 36 | # keep-sorted end 37 | -------------------------------------------------------------------------------- /.github/workflows/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: molecule 3 | 4 | on: 5 | workflow_dispatch: 6 | pull_request: 7 | types: [opened, synchronize] 8 | push: 9 | branches: 10 | - main 11 | 12 | permissions: read-all 13 | 14 | jobs: 15 | molecule-checks: 16 | name: Molecule checks 17 | runs-on: ubuntu-latest 18 | strategy: 19 | matrix: 20 | distro: 21 | - fedora33 22 | - ubuntu2004 23 | - ubuntu2204 24 | 25 | steps: 26 | - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 27 | with: 28 | path: ${{ github.event.repository.name }} 29 | 30 | - name: Set up Python 3. 31 | uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 32 | with: 33 | python-version: 3.x 34 | 35 | - name: Install test dependencies 36 | run: | 37 | set -euxo pipefail 38 | pip3 install ansible molecule-plugins[docker] docker 39 | if [ -f "${GITHUB_REPOSITORY#*/}/requirements.yml" ]; then 40 | ansible-galaxy install -r "${GITHUB_REPOSITORY#*/}/requirements.yml" 41 | fi 42 | 43 | - name: Run tests 44 | env: 45 | PY_COLORS: "1" 46 | ANSIBLE_FORCE_COLOR: "1" 47 | MOLECULE_DISTRO: ${{ matrix.distro }} 48 | run: | 49 | cd "${GITHUB_REPOSITORY#*/}" 50 | molecule test 51 | -------------------------------------------------------------------------------- /.github/workflows/codeql-actions.yml: -------------------------------------------------------------------------------- 1 | name: "CodeQL GitHub Actions" 2 | 3 | on: 4 | workflow_dispatch: 5 | push: 6 | branches: ["main"] 7 | pull_request: 8 | paths: 9 | - .github/workflows/*.yml 10 | schedule: 11 | - cron: 17 10 * * 2 12 | 13 | permissions: read-all 14 | 15 | jobs: 16 | analyze-actions: 17 | name: Analyze GitHub Actions 18 | runs-on: "ubuntu-latest" 19 | permissions: 20 | # required for all workflows 21 | security-events: write 22 | # required to fetch internal or private CodeQL packs 23 | packages: read 24 | steps: 25 | - name: Checkout repository 26 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 27 | 28 | # Initializes the CodeQL tools for scanning. 29 | - name: Initialize CodeQL 30 | uses: github/codeql-action/init@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3.28.17 31 | with: 32 | languages: actions 33 | build-mode: none 34 | # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs 35 | queries: security-extended 36 | 37 | - name: Perform CodeQL Analysis 38 | uses: github/codeql-action/analyze@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3.28.17 39 | with: 40 | category: "/language:actions" 41 | -------------------------------------------------------------------------------- /lychee.toml: -------------------------------------------------------------------------------- 1 | # Configuration for lychee link checker 2 | # https://lychee.cli.rs/#/usage/config 3 | 4 | ############################# Cache ############################### 5 | 6 | # Enable link caching. This can be helpful to avoid checking the same links on 7 | # multiple runs 8 | cache = true 9 | 10 | # Discard all cached requests older than this duration 11 | max_cache_age = "1d" 12 | 13 | ############################# Runtime ############################# 14 | 15 | # Maximum number of concurrent link checks 16 | max_concurrency = 128 17 | 18 | ############################# Requests ############################ 19 | 20 | # Comma-separated list of accepted status codes for valid links. 21 | accept = [429, 999] 22 | 23 | ############################# Exclusions ########################## 24 | 25 | # Exclude URLs and mail addresses from checking (supports regex) 26 | exclude = [ 27 | # keep-sorted start 28 | # Ignore all URLs with '{ ... }' - BASH / Ansible variable in URL 29 | '%7B.*%7D', 30 | # Ignore all URLs with '$' - BASH variable in URL 31 | '\$', 32 | # Ignore all URLs which starts with 'file://' 33 | 'file://', 34 | # returns 403 when accessed from GitHub Action 35 | 'stackexchange\.com', 36 | # returns 403 when accessed from GitHub Action 37 | 'stackoverflow\.com', 38 | # keep-sorted end 39 | ] 40 | 41 | # Exclude these filesystem paths from getting checked 42 | exclude_path = [ 43 | "CHANGELOG.md", 44 | "package-lock.json", 45 | ] 46 | 47 | # Exclude all private IPs from checking 48 | # Equivalent to setting `exclude_private`, `exclude_link_local`, and 49 | # `exclude_loopback` to true 50 | exclude_all_private = true 51 | -------------------------------------------------------------------------------- /.github/workflows/mega-linter.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: mega-linter 3 | 4 | on: 5 | workflow_dispatch: 6 | push: 7 | branches-ignore: 8 | - main 9 | 10 | permissions: read-all 11 | 12 | jobs: 13 | github-context: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Debug 17 | env: 18 | GITHUB_CONTEXT: ${{ toJson(github) }} 19 | run: | 20 | echo "${GITHUB_CONTEXT}" 21 | 22 | mega-linter: 23 | runs-on: ubuntu-latest 24 | if: ${{ (!startsWith(github.ref_name, 'renovate/') && !startsWith(github.ref_name, 'release-please--')) || github.event_name == 'workflow_dispatch' }} 25 | timeout-minutes: 30 26 | steps: 27 | - name: Checkout Code 28 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 29 | 30 | - name: Extract commands from markdown files 31 | run: | 32 | set -euxo pipefail 33 | eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" 34 | brew install mdq 35 | echo '#!/usr/bin/env bash' > README.sh 36 | readarray -d '' MD_FILES < <(find . -type f -name "*.md" -print0) 37 | mdq '```/^bash$|^shell$|^sh$/' --br -o plain "${MD_FILES[@]}" >> README.sh || true 38 | chmod a+x README.sh 39 | 40 | - name: 💡 MegaLinter 41 | uses: oxsecurity/megalinter@5a91fb06c83d0e69fbd23756d47438aa723b4a5a # v8.7.0 42 | env: 43 | GITHUB_COMMENT_REPORTER: false 44 | # Disabled due to error: [GitHub Status Reporter] Error posting Status for REPOSITORY with ...: 403 45 | GITHUB_STATUS_REPORTER: false 46 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 47 | -------------------------------------------------------------------------------- /.github/workflows/markdown-check.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: markdown-check 3 | 4 | on: 5 | workflow_dispatch: 6 | push: 7 | branches-ignore: 8 | - main 9 | paths: 10 | - "**.md" 11 | - .github/workflows/markdown-check.yml 12 | - .markdownlint.yml 13 | - .mlc_config.json 14 | - .spelling 15 | 16 | permissions: read-all 17 | 18 | jobs: 19 | markdownlint-check: 20 | runs-on: ubuntu-latest 21 | steps: 22 | - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 23 | 24 | - name: Markdown Lint 25 | uses: ruzickap/action-my-markdown-linter@26b4129bf0352527e60b5bd739357af63df1b7bf # v1.2.0 26 | with: 27 | exclude: | 28 | CHANGELOG.md 29 | 30 | markdown-link-check: 31 | runs-on: ubuntu-latest 32 | steps: 33 | - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 34 | 35 | - name: Link Checker 36 | uses: ruzickap/action-my-markdown-link-checker@1126c6a5c31df989b4f3b1a8072ad125887b4c47 # v1.3.0 37 | with: 38 | exclude: | 39 | CHANGELOG.md 40 | 41 | markdown-spell-check: 42 | runs-on: ubuntu-latest 43 | steps: 44 | - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 45 | 46 | - name: Install Node.js LTS version 47 | uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 48 | 49 | - name: Install markdown-spellcheck 50 | run: npm install -g markdown-spellcheck 51 | 52 | - name: Run mdspell 53 | run: find . -type f \( -name "*.md" ! -name "CHANGELOG.md" \) -print0 | xargs -0 --max-args=1 --verbose mdspell --ignore-numbers --ignore-acronyms --report --en-gb 54 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Ansible Role: proxy_settings 2 | 3 | [![Ansible Galaxy](http://img.shields.io/badge/galaxy-ruzickap.proxy_settings-660198.svg)](https://galaxy.ansible.com/ruzickap/proxy_settings/) 4 | 5 | Configure proxy settings for Red Hat, Debian and Suse based OS. 6 | 7 | ## Requirements 8 | 9 | None 10 | 11 | ## Role Variables 12 | 13 | Basic proxy settings. 14 | 15 | ```yaml 16 | proxy_settings_http_proxy: 'http://myuser:***********@px01.example.com:3128' 17 | proxy_settings_ftp_proxy: 'http://proxy.example.com:8080' 18 | proxy_settings_https_proxy: 'http://px01.example.com:3128' 19 | proxy_settings_no_proxy: 'example.com,192.168.122.1' 20 | ``` 21 | 22 | You proxy settings if you are using Red Hat based OS. 23 | 24 | ```yaml 25 | proxy_settings_yum_proxy: 'http://proxysrv:8080' 26 | proxy_settings_yum_proxy_username: 'myuser' 27 | proxy_settings_yum_proxy_password: '********' 28 | ``` 29 | 30 | Debian yum proxy settings variables are taken from the default ones. 31 | 32 | ## Dependencies 33 | 34 | None. 35 | 36 | ## Example Playbook 37 | 38 | Including an example of how to use your role (for instance, with variables 39 | passed in as parameters) is always nice for users too: 40 | 41 | ```yaml 42 | - hosts: servers 43 | roles: 44 | - role: ruzickap.proxy_settings 45 | proxy_settings_http_proxy: 'http://myuser:************@px01.example.com:3128' 46 | proxy_settings_ftp_proxy: 'http://proxy.example.com:8080' 47 | proxy_settings_https_proxy: 'http://px01.example.com:3128' 48 | proxy_settings_no_proxy: 'example.com,192.168.122.1' 49 | proxy_settings_yum_proxy: 'http://proxysrv:8080' 50 | proxy_settings_yum_proxy_username: 'myuser' 51 | proxy_settings_yum_proxy_password: '********' 52 | ``` 53 | 54 | ## License 55 | 56 | MIT 57 | 58 | ## Author Information 59 | 60 | This role was created in 2014 by [petr.ruzicka@gmail.com](mailto:petr.ruzicka@gmail.com) 61 | -------------------------------------------------------------------------------- /.mega-linter.yml: -------------------------------------------------------------------------------- 1 | # Configuration file for MegaLinter 2 | # See all available variables at https://megalinter.io/latest/configuration/ and in linters documentation 3 | 4 | # keep-sorted start newline_separated=yes 5 | ANSIBLE_ANSIBLE_LINT_PRE_COMMANDS: 6 | - command: | 7 | mkdir -pv "${HOME}/.ansible/roles" && \ 8 | cd "${HOME}/.ansible/roles" && \ 9 | ln -sv ../../../workspace "${GITHUB_REPOSITORY#*/}" 10 | 11 | BASH_SHELLCHECK_ARGUMENTS: --exclude=SC2317 12 | 13 | BASH_SHFMT_ARGUMENTS: --case-indent --indent 2 --space-redirects 14 | 15 | DISABLE_LINTERS: 16 | - COPYPASTE_JSCPD 17 | - MARKDOWN_MARKDOWN_LINK_CHECK # Using lychee instead 18 | - SPELL_CSPELL 19 | - TERRAFORM_TERRASCAN # Hard to configure - no documentation of the config file 20 | - YAML_V8R 21 | 22 | # Remove: To receive reports as email, please set variable EMAIL_REPORTER_EMAIL 23 | EMAIL_REPORTER: false 24 | 25 | FAIL_IF_MISSING_LINTER_IN_FLAVOR: true 26 | 27 | FILTER_REGEX_EXCLUDE: CHANGELOG.md 28 | 29 | FORMATTERS_DISABLE_ERRORS: false 30 | 31 | JSON_JSONLINT_ARGUMENTS: --comments 32 | 33 | JSON_JSONLINT_FILTER_REGEX_EXCLUDE: .devcontainer/devcontainer.json 34 | 35 | MARKDOWN_MARKDOWNLINT_CONFIG_FILE: .markdownlint.yml 36 | 37 | MARKDOWN_MARKDOWNLINT_FILTER_REGEX_EXCLUDE: CHANGELOG.md 38 | 39 | # Remove initial MegaLinter graphic 40 | PRINT_ALPACA: false 41 | 42 | # Disable creating report directory 43 | REPORT_OUTPUT_FOLDER: none 44 | 45 | REPOSITORY_CHECKOV_ARGUMENTS: --quiet 46 | 47 | # Do not leave debug code in production, Insecure URL 48 | REPOSITORY_DEVSKIM_ARGUMENTS: --ignore-globs CHANGELOG.md --ignore-rule-ids DS162092,DS137138 49 | 50 | REPOSITORY_KICS_ARGUMENTS: --fail-on high 51 | 52 | REPOSITORY_TRIVY_ARGUMENTS: --severity HIGH,CRITICAL --ignore-unfixed 53 | 54 | SPELL_LYCHEE_UNSECURED_ENV_VARIABLES: 55 | - GITHUB_TOKEN 56 | 57 | TERRAFORM_TFLINT_UNSECURED_ENV_VARIABLES: 58 | - GITHUB_TOKEN 59 | 60 | TYPESCRIPT_PRETTIER_ARGUMENTS: --html-whitespace-sensitivity=ignore 61 | 62 | VALIDATE_ALL_CODEBASE: true 63 | 64 | YAML_PRETTIER_ARGUMENTS: --no-error-on-unmatched-pattern 65 | # keep-sorted end 66 | -------------------------------------------------------------------------------- /.github/renovate.json5: -------------------------------------------------------------------------------- 1 | { 2 | $schema: "https://docs.renovatebot.com/renovate-schema.json", 3 | // # keep-sorted start block=yes 4 | "git-submodules": { 5 | enabled: true, 6 | }, 7 | // Keep the extends started with ":" at the end of the list to allow overriding 8 | extends: [ 9 | "config:recommended", 10 | "docker:pinDigests", 11 | "helpers:pinGitHubActionDigestsToSemver", 12 | "security:openssf-scorecard", 13 | ":disableDependencyDashboard", 14 | ":disableRateLimiting", 15 | ":docker", 16 | ":enableVulnerabilityAlertsWithLabel(security)", 17 | ":pinSkipCi", 18 | ], 19 | labels: [ 20 | "renovate", 21 | "renovate/{{replace '.*/' '' depName}}", 22 | "renovate/{{updateType}}", 23 | ], 24 | lockFileMaintenance: { 25 | enabled: true, 26 | schedule: ["before 6am on Sunday"], 27 | }, 28 | // Package update rules 29 | packageRules: [ 30 | { 31 | description: "Disable auto-merge for major updates", 32 | matchUpdateTypes: ["major"], 33 | automerge: false, 34 | }, 35 | { 36 | description: "Ignore frequent renovate updates", 37 | enabled: false, 38 | matchPackageNames: ["renovatebot/github-action"], 39 | matchUpdateTypes: ["patch"], 40 | }, 41 | { 42 | description: "Update renovatebot/github-action minor updates on Sundays", 43 | matchPackageNames: ["renovatebot/github-action"], 44 | matchUpdateTypes: ["minor"], 45 | schedule: ["* * * * 0"], 46 | }, 47 | ], 48 | prBodyTemplate: "{{{table}}}{{{notes}}}{{{changelogs}}}", 49 | rebaseWhen: "behind-base-branch", 50 | // Custom version extraction 51 | regexManagers: [ 52 | { 53 | extractVersionTemplate: "{{#if extractVersion}}{{{extractVersion}}}{{else}}^v?(?.+)${{/if}}", 54 | fileMatch: ["\\.ya?ml$", "\\.md$", "^Dockerfile$", "^entrypoint\\.sh$"], 55 | matchStrings: [ 56 | '# renovate: datasource=(?.+?) depName=(?.+?)( versioning=(?.+?))?( extractVersion=(?.+?))?( registryUrl=(?.+?))?\\s.*[=:]\\s*"?(?.+?)"?\\s', 57 | ], 58 | versioningTemplate: "{{#if versioning}}{{{versioning}}}{{else}}semver{{/if}}", 59 | }, 60 | ], 61 | separateMinorPatch: true, 62 | // # keep-sorted end 63 | } 64 | -------------------------------------------------------------------------------- /meta/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | galaxy_info: 3 | namespace: ruzickap 4 | role_name: proxy_settings 5 | author: Petr Ruzicka 6 | description: Ansible role to configure proxy settings for Linux based systems 7 | 8 | # If the issue tracker for your role is not on github, uncomment the 9 | # next line and provide a value 10 | # issue_tracker_url: http://example.com/issue/tracker 11 | 12 | # Some suggested licenses: 13 | # - BSD (default) 14 | # - MIT 15 | # - GPLv2 16 | # - GPLv3 17 | # - Apache 18 | # - CC-BY 19 | license: MIT 20 | 21 | min_ansible_version: "1.2" 22 | 23 | # If this a Container Enabled role, provide the minimum Ansible Container version. 24 | # min_ansible_container_version: 25 | 26 | # Optionally specify the branch Galaxy will use when accessing the GitHub 27 | # repo for this role. During role install, if no tags are available, 28 | # Galaxy will use this branch. During import Galaxy will access files on 29 | # this branch. If Travis integration is configured, only notifications for this 30 | # branch will be accepted. Otherwise, in all cases, the repo's default branch 31 | # (usually master) will be used. 32 | # github_branch: 33 | 34 | # 35 | # platforms is a list of platforms, and each platform has a name and a list of versions. 36 | # 37 | platforms: 38 | - name: EL 39 | versions: 40 | - all 41 | - name: Ubuntu 42 | versions: 43 | - all 44 | - name: Fedora 45 | versions: 46 | - all 47 | - name: opensuse 48 | versions: 49 | - all 50 | - name: SLES 51 | versions: 52 | - all 53 | - name: opensuse 54 | versions: 55 | - all 56 | - name: GenericLinux 57 | versions: 58 | - all 59 | - name: Debian 60 | versions: 61 | - all 62 | 63 | # List tags for your role here, one per line. A tag is a keyword that describes 64 | # and categorizes the role. Users find roles by searching for tags. Be sure to 65 | # remove the '[]' above, if you add tags to this list. 66 | # 67 | # NOTE: A tag is limited to a single word comprised of alphanumeric characters. 68 | # Maximum 20 tags per role. 69 | galaxy_tags: 70 | - proxy 71 | - networking 72 | - system 73 | 74 | dependencies: [] 75 | # List your role dependencies here, one per line. Be sure to remove the '[]' above, 76 | # if you add dependencies to this list. 77 | -------------------------------------------------------------------------------- /.github/workflows/renovate.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: renovate 3 | 4 | on: 5 | workflow_dispatch: 6 | inputs: 7 | dryRun: 8 | type: boolean 9 | description: Dry-Run 10 | logLevel: 11 | type: choice 12 | description: Log-Level 13 | default: debug 14 | options: 15 | - info 16 | - debug 17 | - trace 18 | push: 19 | branches: 20 | - main 21 | - "!renovate/*" 22 | schedule: 23 | - cron: 0 0-3 * * 0 24 | 25 | env: 26 | # keep-sorted start 27 | # https://docs.renovatebot.com/troubleshooting/#log-debug-levels 28 | LOG_LEVEL: ${{ inputs.logLevel || 'debug' }} 29 | RENOVATE_AUTOMERGE: "true" 30 | # Renovate Automerge 31 | RENOVATE_AUTOMERGE_TYPE: branch 32 | # https://docs.renovatebot.com/self-hosted-configuration/#dryrun 33 | # Run renovate in dry-run mode if executed in branches other than main - prevents versions in PRs/branches from being updated 34 | RENOVATE_DRY_RUN: ${{ inputs.dryRun || ( github.head_ref || github.ref_name ) != 'main' || false }} 35 | # https://docs.renovatebot.com/configuration-options/#platformcommit 36 | RENOVATE_PLATFORM_COMMIT: "true" 37 | # https://docs.renovatebot.com/self-hosted-configuration/#repositories 38 | RENOVATE_REPOSITORIES: ${{ github.repository }} 39 | # https://docs.renovatebot.com/self-hosted-configuration/#username 40 | RENOVATE_USERNAME: ${{ github.repository_owner }} 41 | # keep-sorted end 42 | 43 | permissions: read-all 44 | 45 | jobs: 46 | github-context: 47 | runs-on: ubuntu-latest 48 | steps: 49 | - name: Debug 50 | env: 51 | GITHUB_CONTEXT: ${{ toJson(github) }} 52 | run: | 53 | echo "${GITHUB_CONTEXT}" 54 | 55 | renovate: 56 | runs-on: ubuntu-latest 57 | concurrency: 58 | group: ${{ github.workflow }}-${{ github.ref }} 59 | permissions: write-all 60 | steps: 61 | - name: Checkout 62 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 63 | 64 | - uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6 65 | id: app-token 66 | with: 67 | app-id: ${{ secrets.MY_RENOVATE_GITHUB_APP_ID }} 68 | private-key: ${{ secrets.MY_RENOVATE_GITHUB_PRIVATE_KEY }} 69 | 70 | - name: 💡 Self-hosted Renovate 71 | uses: renovatebot/github-action@19ba43e1bc58ed95c0ba205dee8b1bc0f27b630d # v42.0.0 72 | with: 73 | token: ${{ steps.app-token.outputs.token }} 74 | -------------------------------------------------------------------------------- /tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # tasks file for proxy_settings 3 | 4 | - name: Configure proxy settings for OS (/etc/environment) 5 | ansible.builtin.blockinfile: 6 | dest: /etc/environment 7 | create: true 8 | mode: u=rw,g=r,o=r 9 | block: | 10 | {% if proxy_settings_http_proxy is defined %} 11 | http_proxy="{{ proxy_settings_http_proxy }}" 12 | HTTP_PROXY="{{ proxy_settings_http_proxy }}" 13 | {% endif %} 14 | {% if proxy_settings_ftp_proxy is defined %} 15 | ftp_proxy="{{ proxy_settings_ftp_proxy }}" 16 | FTP_PROXY="{{ proxy_settings_ftp_proxy }}" 17 | {% endif %} 18 | {% if proxy_settings_https_proxy is defined %} 19 | https_proxy="{{ proxy_settings_https_proxy }}" 20 | HTTPS_PROXY="{{ proxy_settings_https_proxy }}" 21 | {% endif %} 22 | {% if proxy_settings_no_proxy is defined %} 23 | no_proxy="{{ proxy_settings_no_proxy }}" 24 | NO_PROXY="{{ proxy_settings_no_proxy }}" 25 | {% endif %} 26 | tags: proxy 27 | 28 | - name: Configure proxy settings for OS (/etc/profile.d/proxy.sh) 29 | ansible.builtin.template: 30 | src: proxy.sh.j2 31 | dest: /etc/profile.d/proxy.sh 32 | mode: u=rw,g=r,o=r 33 | tags: proxy 34 | 35 | - name: Check if systemd/system.conf exists 36 | ansible.builtin.stat: 37 | path: /etc/systemd/system.conf 38 | register: systemd_system_conf 39 | tags: proxy 40 | 41 | - name: Configure proxy settings for systemd services 42 | ansible.builtin.lineinfile: 43 | path: /etc/systemd/system.conf 44 | regexp: ^DefaultEnvironment= 45 | line: >- 46 | DefaultEnvironment={% if proxy_settings_ftp_proxy is defined %}"FTP_PROXY={{ proxy_settings_ftp_proxy }}"{% endif %} 47 | {% if proxy_settings_http_proxy is defined %}"HTTP_PROXY={{ proxy_settings_http_proxy }}"{% endif %} 48 | {% if proxy_settings_https_proxy is defined %}"HTTPS_PROXY={{ proxy_settings_https_proxy }}"{% endif %} 49 | {% if proxy_settings_no_proxy is defined %}"NO_PROXY={{ proxy_settings_no_proxy }}"{% endif %} 50 | {% if proxy_settings_ftp_proxy is defined %}"ftp_proxy={{ proxy_settings_ftp_proxy }}"{% endif %} 51 | {% if proxy_settings_http_proxy is defined %}"http_proxy={{ proxy_settings_http_proxy }}"{% endif %} 52 | {% if proxy_settings_https_proxy is defined %}"https_proxy={{ proxy_settings_https_proxy }}"{% endif %} 53 | {% if proxy_settings_no_proxy is defined %}"no_proxy={{ proxy_settings_no_proxy }}"{% endif %} 54 | when: systemd_system_conf.stat.exists 55 | notify: Systemd daemon-reload 56 | tags: proxy 57 | 58 | - name: Check if wgetrc exists 59 | ansible.builtin.stat: 60 | path: /etc/wgetrc 61 | register: wgetrc 62 | tags: proxy 63 | 64 | - name: Add proxy settings to wgetrc (if exists) 65 | ansible.builtin.blockinfile: 66 | dest: /etc/wgetrc 67 | mode: u=rw,g=r,o=r 68 | block: | 69 | use_proxy = on 70 | {% if proxy_settings_http_proxy is defined %} 71 | http_proxy = {{ proxy_settings_http_proxy }} 72 | {% endif %} 73 | {% if proxy_settings_https_proxy is defined %} 74 | https_proxy = {{ proxy_settings_https_proxy }} 75 | {% endif %} 76 | {% if proxy_settings_ftp_proxy is defined %} 77 | ftp_proxy = {{ proxy_settings_ftp_proxy }} 78 | {% endif %} 79 | {% if proxy_settings_no_proxy is defined %} 80 | no_proxy = {{ proxy_settings_no_proxy }} 81 | {% endif %} 82 | when: wgetrc.stat.exists 83 | tags: proxy 84 | 85 | - name: Configure proxy settings for dnf 86 | ansible.builtin.lineinfile: 87 | dest: /etc/dnf/dnf.conf 88 | regexp: ^proxy= 89 | line: proxy={{ proxy_settings_yum_proxy }} 90 | mode: u=rw,g=r,o=r 91 | tags: proxy 92 | when: ansible_pkg_mgr == 'dnf' and proxy_settings_yum_proxy is defined 93 | 94 | - name: Configure proxy_username for dnf 95 | ansible.builtin.lineinfile: 96 | dest: /etc/dnf/dnf.conf 97 | regexp: ^proxy_username= 98 | line: proxy_username={{ proxy_settings_yum_proxy_username }} 99 | mode: u=rw,g=r,o=r 100 | tags: proxy 101 | when: ansible_pkg_mgr == 'dnf' and proxy_settings_yum_proxy_username is defined 102 | 103 | - name: Configure proxy_password for dnf 104 | ansible.builtin.lineinfile: 105 | dest: /etc/dnf/dnf.conf 106 | regexp: ^proxy_password= 107 | line: proxy_password={{ proxy_settings_yum_proxy_password }} 108 | mode: u=rw,g=r,o=r 109 | tags: proxy 110 | when: ansible_pkg_mgr == 'dnf' and proxy_settings_yum_proxy_password is defined 111 | 112 | - name: Configure proxy settings for yum 113 | ansible.builtin.lineinfile: 114 | dest: /etc/yum.conf 115 | regexp: ^proxy= 116 | line: proxy={{ proxy_settings_yum_proxy }} 117 | mode: u=rw,g=r,o=r 118 | tags: proxy 119 | when: ansible_pkg_mgr == 'yum' and proxy_settings_yum_proxy is defined 120 | 121 | - name: Configure proxy_username for yum 122 | ansible.builtin.lineinfile: 123 | dest: /etc/yum.conf 124 | regexp: ^proxy_username= 125 | line: proxy_username={{ proxy_settings_yum_proxy_username }} 126 | mode: u=rw,g=r,o=r 127 | tags: proxy 128 | when: ansible_pkg_mgr == 'yum' and proxy_settings_yum_proxy_username is defined 129 | 130 | - name: Configure proxy_password for yum 131 | ansible.builtin.lineinfile: 132 | dest: /etc/yum.conf 133 | regexp: ^proxy_password= 134 | line: proxy_password={{ proxy_settings_yum_proxy_password }} 135 | mode: u=rw,g=r,o=r 136 | tags: proxy 137 | when: ansible_pkg_mgr == 'yum' and proxy_settings_yum_proxy_password is defined 138 | 139 | - name: Configure proxy settings for apt-get/aptitude 140 | ansible.builtin.template: 141 | src: 80proxy.j2 142 | dest: /etc/apt/apt.conf.d/80proxy 143 | mode: u=rw,g=r,o=r 144 | tags: proxy 145 | when: ansible_pkg_mgr == 'apt' 146 | 147 | - name: Configure proxy settings for Suse 148 | ansible.builtin.template: 149 | src: proxy.j2 150 | dest: /etc/sysconfig/proxy 151 | mode: u=rw,g=r,o=r 152 | tags: proxy 153 | when: ansible_pkg_mgr == 'zypper' 154 | -------------------------------------------------------------------------------- /.github/workflows/pr-slack-notification.yml: -------------------------------------------------------------------------------- 1 | name: pr-slack-notification 2 | 3 | # Based on: https://github.com/slackapi/slack-github-action/issues/269 4 | 5 | on: 6 | workflow_dispatch: 7 | pull_request: 8 | types: 9 | - opened 10 | - ready_for_review 11 | - review_requested 12 | - closed 13 | issue_comment: 14 | types: 15 | - created 16 | pull_request_review: 17 | types: 18 | - submitted 19 | 20 | permissions: read-all 21 | 22 | defaults: 23 | run: 24 | shell: bash -euxo pipefail {0} 25 | 26 | jobs: 27 | github-context: 28 | runs-on: ubuntu-latest 29 | steps: 30 | - name: Debug 31 | env: 32 | GITHUB_CONTEXT: ${{ toJson(github) }} 33 | run: | 34 | echo "${GITHUB_CONTEXT}" 35 | 36 | pr-slack-notification: 37 | runs-on: ubuntu-latest 38 | name: Sends a message to Slack when a PR is opened 39 | if: (github.event.action == 'opened' && github.event.pull_request.draft == false) || github.event.action == 'ready_for_review' 40 | steps: 41 | - name: Post PR summary message to slack 42 | id: message 43 | uses: slackapi/slack-github-action@485a9d42d3a73031f12ec201c457e2162c45d02d # v2.0.0 44 | with: 45 | method: chat.postMessage 46 | token: ${{ secrets.MY_SLACK_BOT_TOKEN }} 47 | payload: | 48 | channel: ${{ secrets.MY_SLACK_CHANNEL_ID }} 49 | text: "💡 *${{ github.event.pull_request.user.login }}*: <${{ github.event.repository.html_url }}|${{ github.repository }}> - <${{ github.event.pull_request.html_url }}|#${{ github.event.pull_request.number }} - ${{ github.event.pull_request.title }}> (+${{ github.event.pull_request.additions }}, -${{ github.event.pull_request.deletions }})" 50 | 51 | - name: Create file with slack message timestamp 52 | env: 53 | TS: ${{ steps.message.outputs.ts }} 54 | run: | 55 | echo "${TS}" > slack-message-timestamp.txt 56 | 57 | - name: Cache slack message timestamp 58 | uses: actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 59 | with: 60 | path: slack-message-timestamp.txt 61 | key: slack-message-timestamp-${{ github.event.pull_request.html_url }}-${{ steps.message.outputs.ts }} 62 | 63 | slack-emoji-react: 64 | runs-on: ubuntu-latest 65 | name: Adds emoji reaction to slack message when a PR is closed or reviewed 66 | if: ${{ startsWith(github.event.pull_request.html_url, 'https') || startsWith(github.event.issue.pull_request.html_url, 'https') }} 67 | steps: 68 | # gh commands needs to be executed in the repository 69 | - name: Checkout Code 70 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 71 | 72 | # https://stackoverflow.com/questions/74640750/github-actions-not-finding-cache 73 | # I can not use the cache action in this job because the cache is not shared between runs 74 | - name: Save slack timestamp as an environment variable 75 | id: slack-timestamp 76 | env: 77 | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} 78 | GITHUB_PULL_REQUEST_HTML_URL: ${{ github.event.pull_request.html_url || github.event.issue.pull_request.html_url }} 79 | run: | 80 | SLACK_TIMESTAMP=$(gh cache list --json key --jq "[.[].key|capture(\"${GITHUB_PULL_REQUEST_HTML_URL}-(?.+)\").x][0]") 81 | echo "SLACK_TIMESTAMP=${SLACK_TIMESTAMP}" | tee -a "${GITHUB_ENV}" 82 | if [[ "${SLACK_TIMESTAMP}" != '' ]]; then 83 | echo "github_event_pull_request_html_url=true" >> "${GITHUB_OUTPUT}" 84 | fi 85 | 86 | - name: Decide which emoji to add 87 | if: ${{ steps.slack-timestamp.outputs.github_event_pull_request_html_url == 'true' }} 88 | env: 89 | GITHUB_EVENT_ACTION: ${{ github.event.action }} 90 | GITHUB_EVENT_NAME: ${{ github.event_name }} 91 | GITHUB_EVENT_REVIEW_STATE: ${{ github.event.review.state }} 92 | run: | 93 | case "${GITHUB_EVENT_ACTION}" in 94 | created) 95 | if [[ "${GITHUB_EVENT_NAME}" == 'issue_comment' ]]; then 96 | echo "EMOJI=speech_balloon" >> "${GITHUB_ENV}" # 💬 97 | fi 98 | ;; 99 | submitted) 100 | case "${GITHUB_EVENT_REVIEW_STATE}" in 101 | changes_requested) 102 | echo "EMOJI=repeat" >> "${GITHUB_ENV}" # 🔁 103 | ;; 104 | approved) 105 | echo "EMOJI=ok" >> "${GITHUB_ENV}" # 🆗 106 | ;; 107 | commented) 108 | echo "EMOJI=speech_balloon" >> "${GITHUB_ENV}" # 💬 109 | ;; 110 | esac 111 | ;; 112 | review_requested) 113 | echo "EMOJI=eyes" >> "${GITHUB_ENV}" # 👀 114 | ;; 115 | *) 116 | echo "EMOJI=false" >> "${GITHUB_ENV}" 117 | ;; 118 | esac 119 | 120 | - name: React to PR summary message in slack with emoji 121 | if: ${{ steps.slack-timestamp.outputs.github_event_pull_request_html_url == 'true' && env.EMOJI != 'false' }} 122 | uses: slackapi/slack-github-action@485a9d42d3a73031f12ec201c457e2162c45d02d # v2.0.0 123 | with: 124 | method: reactions.add 125 | token: ${{ secrets.MY_SLACK_BOT_TOKEN }} 126 | payload: | 127 | channel: ${{ secrets.MY_SLACK_CHANNEL_ID }} 128 | timestamp: "${{ env.SLACK_TIMESTAMP }}" 129 | name: ${{ env.EMOJI }} 130 | 131 | - name: Update the original message with status Merged ✅ 132 | if: ${{ github.event.pull_request.merged && steps.slack-timestamp.outputs.github_event_pull_request_html_url == 'true' }} 133 | uses: slackapi/slack-github-action@485a9d42d3a73031f12ec201c457e2162c45d02d # v2.0.0 134 | with: 135 | method: chat.update 136 | token: ${{ secrets.MY_SLACK_BOT_TOKEN }} 137 | payload: | 138 | channel: ${{ secrets.MY_SLACK_CHANNEL_ID }} 139 | ts: "${{ env.SLACK_TIMESTAMP }}" 140 | text: "✅ *${{ github.event.pull_request.user.login }}*: <${{ github.event.repository.html_url }}|${{ github.repository }}> - <${{ github.event.pull_request.html_url }}|#${{ github.event.pull_request.number }} - ${{ github.event.pull_request.title }}> (+${{ github.event.pull_request.additions }}, -${{ github.event.pull_request.deletions }})" 141 | attachments: 142 | - color: "28a745" 143 | fields: 144 | - title: "Status" 145 | short: true 146 | value: "Merged ✅" 147 | 148 | - name: Update the original message with status Closed ❎ 149 | if: ${{ github.event.action == 'closed' && github.event.pull_request.merged == false && steps.slack-timestamp.outputs.github_event_pull_request_html_url == 'true' }} 150 | uses: slackapi/slack-github-action@485a9d42d3a73031f12ec201c457e2162c45d02d # v2.0.0 151 | with: 152 | method: chat.update 153 | token: ${{ secrets.MY_SLACK_BOT_TOKEN }} 154 | payload: | 155 | channel: ${{ secrets.MY_SLACK_CHANNEL_ID }} 156 | ts: "${{ env.SLACK_TIMESTAMP }}" 157 | text: "❎ *${{ github.event.pull_request.user.login }}*: <${{ github.event.repository.html_url }}|${{ github.repository }}> - <${{ github.event.pull_request.html_url }}|#${{ github.event.pull_request.number }} - ${{ github.event.pull_request.title }}> (+${{ github.event.pull_request.additions }}, -${{ github.event.pull_request.deletions }})" 158 | attachments: 159 | - color: "fa7015" 160 | fields: 161 | - title: "Status" 162 | short: true 163 | value: "Closed ❎" 164 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## [0.3.0](https://github.com/ruzickap/ansible-role-proxy_settings/compare/v0.2.0...v0.3.0) (2025-05-06) 4 | 5 | 6 | ### Features 7 | 8 | * **gh:** add default github repo files ([#53](https://github.com/ruzickap/ansible-role-proxy_settings/issues/53)) ([a24eecf](https://github.com/ruzickap/ansible-role-proxy_settings/commit/a24eecfe5bafe23b5ee66fcc6d1cc92d2ab43997)) 9 | * **gh:** add default github repo files ([#57](https://github.com/ruzickap/ansible-role-proxy_settings/issues/57)) ([02349a7](https://github.com/ruzickap/ansible-role-proxy_settings/commit/02349a78bc692ce778882750a8faf43ee519015c)) 10 | 11 | ## [0.2.0](https://github.com/ruzickap/ansible-role-proxy_settings/compare/v0.1.4...v0.2.0) (2024-09-20) 12 | 13 | 14 | ### Features 15 | 16 | * add GitHub default templates ([#49](https://github.com/ruzickap/ansible-role-proxy_settings/issues/49)) ([3451d7e](https://github.com/ruzickap/ansible-role-proxy_settings/commit/3451d7e036a33b6f42e60269371458a0bae721b2)) 17 | * **gh_actions:** replace stale + add commitlint ([9827349](https://github.com/ruzickap/ansible-role-proxy_settings/commit/9827349f78567d2f541711b0d215108bc56a6bb4)) 18 | * **gh-actions:** add lint-pr-title ([59ba77f](https://github.com/ruzickap/ansible-role-proxy_settings/commit/59ba77fde0cec018eeafc6ea14cbe5ecb4ca7fdf)) 19 | * **gh:** add default GitHub repo files ([#44](https://github.com/ruzickap/ansible-role-proxy_settings/issues/44)) ([2cd9dda](https://github.com/ruzickap/ansible-role-proxy_settings/commit/2cd9dda755dc68cac2d936446d9595f8f3e539ce)) 20 | * **gh:** add default GitHub repo files ([#45](https://github.com/ruzickap/ansible-role-proxy_settings/issues/45)) ([f382558](https://github.com/ruzickap/ansible-role-proxy_settings/commit/f38255838a6d7179502f2feb0db515041c3c7f86)) 21 | * **gha:** unify GHA - renovate, megalinter, markdown, and others ([a457157](https://github.com/ruzickap/ansible-role-proxy_settings/commit/a45715763eb1351fd6c72a49c0a154e7b4e0a249)) 22 | 23 | 24 | ### Bug Fixes 25 | 26 | * **squash:** Squash this ([20af240](https://github.com/ruzickap/ansible-role-proxy_settings/commit/20af2402026f4dd5cc2b48d1b89f07d3405e2f50)) 27 | 28 | ## [v0.1.4](https://github.com/ruzickap/ansible-role-proxy_settings/compare/v0.1.3...v0.1.4) 29 | 30 | - Move from master to main [`#25`](https://github.com/ruzickap/ansible-role-proxy_settings/pull/25) 31 | - Use super-linter:slim [`#24`](https://github.com/ruzickap/ansible-role-proxy_settings/pull/24) 32 | - Upgrade GH Actions versions [`#23`](https://github.com/ruzickap/ansible-role-proxy_settings/pull/23) 33 | 34 | ## [v0.1.3](https://github.com/ruzickap/ansible-role-proxy_settings/compare/v0.1.2...v0.1.3) (2021-03-26) 35 | 36 | - Add systemd DefaultEnvironment [`#21`](https://github.com/ruzickap/ansible-role-proxy_settings/pull/21) 37 | - Fix tests [`#20`](https://github.com/ruzickap/ansible-role-proxy_settings/pull/20) 38 | - Fix CHANGELOG.md [`#19`](https://github.com/ruzickap/ansible-role-proxy_settings/pull/19) 39 | 40 | ## [v0.1.2](https://github.com/ruzickap/ansible-role-proxy_settings/compare/v0.1.1...v0.1.2) (2020-11-19) 41 | 42 | - Fix CD [`#17`](https://github.com/ruzickap/ansible-role-proxy_settings/pull/17) 43 | 44 | ## [v0.1.1](https://github.com/ruzickap/ansible-role-proxy_settings/compare/v0.1.0...v0.1.1) (2020-11-19) 45 | 46 | - Fix CI [`#15`](https://github.com/ruzickap/ansible-role-proxy_settings/pull/15) 47 | - Guard variable references in wgetrc text [`#14`](https://github.com/ruzickap/ansible-role-proxy_settings/pull/14) 48 | 49 | ## [v0.1.0](https://github.com/ruzickap/ansible-role-proxy_settings/compare/v0.0.1...v0.1.0) (2020-09-17) 50 | 51 | - Fix mode in ansible playbooks [`#12`](https://github.com/ruzickap/ansible-role-proxy_settings/pull/12) 52 | - Replace markdown link checker by action-my-markdown-link-checker [`#11`](https://github.com/ruzickap/ansible-role-proxy_settings/pull/11) 53 | - Replace markdown linter [`#10`](https://github.com/ruzickap/ansible-role-proxy_settings/pull/10) 54 | - Add super-linter [`#9`](https://github.com/ruzickap/ansible-role-proxy_settings/pull/9) 55 | - Add super-linter + fix related issues [`#8`](https://github.com/ruzickap/ansible-role-proxy_settings/pull/8) 56 | - Upgrade shellcheck to latest version [`#7`](https://github.com/ruzickap/ansible-role-proxy_settings/pull/7) 57 | - Add colours to molecule and ansible [`#6`](https://github.com/ruzickap/ansible-role-proxy_settings/pull/6) 58 | - Ignore CHANGELOG.md when doing markdownlint + mdspell [`#5`](https://github.com/ruzickap/ansible-role-proxy_settings/pull/5) 59 | 60 | ## v0.0.1 (2020-05-09) 61 | 62 | - fix idempotence [`#3`](https://github.com/ruzickap/ansible-role-proxy_settings/pull/3) 63 | - Use "ubuntu-latest" instead of "ubuntu-18.04" [`a572fc6`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/a572fc6c6d60f9b898e13f74aa9034772e672e07) 64 | - Add stale [`412b092`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/412b09220c2ead42b4ffdbdc93ac4f9cf960ec9f) 65 | - Update ubuntu from ubuntu-18.04 -> ubuntu-latest [`c266ab7`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/c266ab70649e6a86b04e4e71811467036d818dca) 66 | - Update github-action-markdown-link-check to version v1 [`b7f7e26`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/b7f7e26f24c7e7f7e428e7b8e03736f5221e070a) 67 | - Update tests to use Molecule 3.0 and lint manually [`f3f9656`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/f3f965694907a721e7ed3e19da90a6f3a465d185) 68 | - Increase version of markdown-link-check and use action-yamllint with tag [`b11d2ea`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/b11d2ea7519e7a065d8de36a671fc4cb32ed5c2a) 69 | - Add shellcheck + ansible-lint improved [`ee01a32`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/ee01a32c29fd6dae9a9f3d1ffe0d4a41b2f9b2b4) 70 | - Add comments to .yamllint.yml [`c25f1eb`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/c25f1ebd158f524a3d581c4842f7d2cb45d18b20) 71 | - Add comment to .markdownlint.yml [`c85099e`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/c85099eda57dbbcd654320f79e3ae6bfa8643861) 72 | - Add .pre-commit-config.yaml and python files to .gitignore [`b3eaf06`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/b3eaf06b363e2f0f7de4dc93a13b9b93aa7fca69) 73 | - Fix tests to let them run only on master branch [`d47a5b5`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/d47a5b5da6874ff32980f67e8389ed8b86012b61) 74 | - Split markdown and molecule tests [`c5c6024`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/c5c602426e201571e486a706fba3d6eda5780c46) 75 | - Fix mdspell [`fde81dd`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/fde81ddbbd6a5c0833e002f538b8d2c4f1e33640) 76 | - Add ansible-lint tests [`4b28e23`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/4b28e23ed1f90f530579f00d9c2e953c671fe8a4) 77 | - Ubuntu 14.04 removed from tests [`096948d`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/096948d7a93c27a6c4ac5af1d930b7b37de92dfa) 78 | - GitHub Actions rewritten [`38492be`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/38492be8959db985f9e4b90e2a9ec7a185163f23) 79 | - Upgrading actions/checkout from v1 to v2 [`14a4d6e`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/14a4d6ea0d0f45ba80aabe97a6c34e25e5a60bad) 80 | - Adding repository update command to GH Actions [`b47045c`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/b47045c9dbc059a0c375072de314133edc466850) 81 | - GitHub Action added [`b079ecb`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/b079ecb1b0ebaa4629713e9f8da2f8f8797e535d) 82 | - Fix spelling [`f1fec21`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/f1fec21f5366c8408a6b27e0ea3a3f1ad596b967) 83 | - Ubuntu 12.04 tests removed [`d0d90d4`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/d0d90d447f57666e54b6beb7efa69f545f770b6d) 84 | - Molecule tests changed [`05fc355`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/05fc3553e1b32b944729e1a80e2648c4204abc7d) 85 | - Moving to Node.js 10 in TravisCI [`eacc94b`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/eacc94bf6593aea60bd930eee790c2e0e187acf6) 86 | - find error codes replaced by xargs - problems should be detected and task fails in TravisCI [`bd3d47b`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/bd3d47b7df9037be119f6c8579b6306435679038) 87 | - TravisCI improvements [`1403354`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/14033545eca290fa379ac8a562d85a5b899fbbff) 88 | - License added [`e29f70e`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/e29f70e87faa3b869245e4f7c06e6db00ed63672) 89 | - Change from travis-ci.org -> travis-ci.com [`05e8f1d`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/05e8f1d234d9e2096d6bf1d7345e6e897949aa62) 90 | - Moving to Molecule testing [`d394991`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/d394991cb3546b19fe07b155d12f7acf04c5e5a5) 91 | - Small fix [`de73af8`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/de73af838a63a714ed1f2ed73d0f7d050723feeb) 92 | - ansible-lint added [`4d9d31c`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/4d9d31c6a0cb6b94a68e44459ab16fa0525a5135) 93 | - ArchLinux test removed... [`9c3a9a9`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/9c3a9a94bab4a84a13b9016ebf8bedd9db362525) 94 | - Alpine test removed [`6f11509`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/6f1150993bd0ca7c98c425d313e4b4bca2caee32) 95 | - travis-ci tests improved [`af20afb`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/af20afb5e137869f4f3209c129b5b1c4ded8c6df) 96 | - Changed the way of handling /etc/environment [`14d32c0`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/14d32c0f57b2934c7a9bd37f37721c2a9bc8dc40) 97 | - no_proxy added for wget [`1dd8d2d`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/1dd8d2d17ee709f763062c461d90a06a91852234) 98 | - Add proxies to wgetrc to configure proxy in wget [`ad1880c`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/ad1880cd7bcbbb76e65e9ddec31e0d7b41cf6a5d) 99 | - Tests fixed [`1d825ba`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/1d825bafe81f8ec553b9409d50133945aec75787) 100 | - Travis changed... [`10ee518`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/10ee5185a0d9e4efb79c36b71163d37049bb85da) 101 | - Travis yml changed to pass the tests. [`d2d6a87`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/d2d6a870cbc86ce9fdf31f8cd8790eb8e50d5fa0) 102 | - Fixed documentation typo. [`afffc36`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/afffc3691920ed81f84df2e4f06f25174b136274) 103 | - Cosmetic badge change [`e7f4350`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/e7f4350f978e7e61bb3bdca9121add97575d9f89) 104 | - Ansible Galaxy Badge added [`bbbd5c9`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/bbbd5c945210a1d8b0503ed26b5fb3efbb95cf54) 105 | - Fixed typo in test [`591ad65`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/591ad6532be3f62ef68fd613052cff9ae883c77f) 106 | - README improved [`79c442b`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/79c442b4b425b6f8a172032c8bac5f43382f1ec4) 107 | - Name change to proxy_settings [`9f059a9`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/9f059a9449610d54abd91abd9a3c661404ff4d97) 108 | - Added proxy variables in upper case letters [`da06ea5`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/da06ea52e244f63dad02e84b81c05da2a9f26857) 109 | - Fixed issue with multiple proxy entries in yum.conf [`21fdcfa`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/21fdcfac9eca60cb756bcae3693738d2db11179f) 110 | - Small "output" changes [`360742e`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/360742e987c2473fc6026168b82a7734c1bdb84f) 111 | - Path to binaries fixed for testing [`e99b28d`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/e99b28d88fac42af7851ea68d9a496c2d73b31de) 112 | - Testing improved [`0199e6a`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/0199e6ab483a7201cd1ca65d5ff961a5289493f2) 113 | - Added variables to test.yml + templates improvements. [`eb3a5be`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/eb3a5bee21ba14ea3b0b321dd36dd4cad66f4c3b) 114 | - Small contact change [`f8a92c6`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/f8a92c621dccaea83d9ba71463f8dd54c4af8912) 115 | - Initial commit. [`b9e79c7`](https://github.com/ruzickap/ansible-role-proxy_settings/commit/b9e79c7f7b732a67bdcb80ba8018f64e46464d5b) 116 | --------------------------------------------------------------------------------