ufw

Роль Ansible weareinteractive.ufw

Статус сборки Galaxy Тэги GitHub Звезды GitHub

weareinteractive.ufw – это роль для Ansible, которая:

  • устанавливает ufw
  • настраивает ufw
  • настраивает правила ufw
  • настраивает сервис

Установка

Используя ansible-galaxy:

$ ansible-galaxy install weareinteractive.ufw

Используя requirements.yml:

- src: weareinteractive.ufw

Используя git:

$ git clone https://github.com/weareinteractive/ansible-ufw.git weareinteractive.ufw

Зависимости

  • Ansible >= 2.10

Переменные

Вот список всех переменных по умолчанию для этой роли, которые также доступны в defaults/main.yml.

---
# Запустить сервис и включить его при загрузке системы
ufw_enabled: true

# Список пакетов для установки
ufw_packages: ["ufw"]

# Название сервиса
ufw_service: ufw

# Список правил, которые будут применены
# см. https://docs.ansible.com/ansible/latest/collections/community/general/ufw_module.html для документации
ufw_rules:
  - rule: allow
    to_port: 22

# Управление конфигурационным файлом
ufw_manage_config: false

# Объект конфигурации, передаваемый в конфигурационный файл
ufw_config:
  IPV6: "yes"
  DEFAULT_INPUT_POLICY: DROP
  DEFAULT_OUTPUT_POLICY: ACCEPT
  DEFAULT_FORWARD_POLICY: DROP
  DEFAULT_APPLICATION_POLICY: SKIP
  MANAGE_BUILTINS: "no"
  IPT_SYSCTL: /etc/ufw/sysctl.conf
  IPT_MODULES: ""

# Путь к конфигурационному файлу
ufw_config_file: /etc/default/ufw

Обработчики

Вот обработчики, определенные в handlers/main.yml.

---

- name: сбросить ufw
  community.general.ufw:
    state: reset

- name: перезагрузить ufw
  community.general.ufw:
    state: reloaded
  when: ufw_enabled | bool

Использование

Вот пример плейбука:

# @see https://docs.ansible.com/ansible/latest/collections/community/general/ufw_module.html#examples
---

- hosts: all
  become: true
  roles:
    - weareinteractive.ufw
  vars:
    ufw_rules:
      # Настроить логирование
      - logging: "full"
      # Разрешить OpenSSH
      - rule: allow
        name: OpenSSH
      # Удалить правило OpenSSH
      - rule: allow
        name: OpenSSH
        delete: true
      # Разрешить весь доступ к tcp порту 80
      - rule: allow
        to_port: '80'
        proto: tcp
    # Управлять конфигурационным файлом
    ufw_manage_config: true
    # Объект конфигурации, передаваемый в конфигурационный файл
    ufw_config:
      IPV6: "yes"
      DEFAULT_INPUT_POLICY: DROP
      DEFAULT_OUTPUT_POLICY: ACCEPT
      DEFAULT_FORWARD_POLICY: DROP
      DEFAULT_APPLICATION_POLICY: SKIP
      MANAGE_BUILTINS: "no"
      IPT_SYSCTL: /etc/ufw/sysctl.conf
      IPT_MODULES: ""

Тестирование

$ git clone https://github.com/weareinteractive/ansible-ufw.git
$ cd ansible-ufw
$ make test

Участие

Вместо формального руководства по стилю, постарайтесь сохранить существующий стиль кода. Добавьте модульные тесты и примеры для любой новой или измененной функциональности.

  1. Сделайте форк
  2. Создайте новую ветку (git checkout -b my-new-feature)
  3. Зафиксируйте изменения (git commit -am 'Добавить новую функциональность')
  4. Отправьте изменения в ветку (git push origin my-new-feature)
  5. Создайте новый Pull Request

Примечание: Чтобы обновить файл README.md, установите и запустите ansible-readme:

$ gem install ansible-readme
$ ansible-readme

Лицензия

Авторское право (c) We Are Interactive по лицензии MIT.

О проекте

Installs and configures ufw

Установить
ansible-galaxy install weareinteractive/ansible-ufw
Лицензия
mit
Загрузки
210591
Владелец