ufw
Роль Ansible weareinteractive.ufw
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
Участие
Вместо формального руководства по стилю, постарайтесь сохранить существующий стиль кода. Добавьте модульные тесты и примеры для любой новой или измененной функциональности.
- Сделайте форк
- Создайте новую ветку (
git checkout -b my-new-feature
) - Зафиксируйте изменения (
git commit -am 'Добавить новую функциональность'
) - Отправьте изменения в ветку (
git push origin my-new-feature
) - Создайте новый Pull Request
Примечание: Чтобы обновить файл README.md
, установите и запустите ansible-readme
:
$ gem install ansible-readme
$ ansible-readme
Лицензия
Авторское право (c) We Are Interactive по лицензии MIT.
Установить
ansible-galaxy install weareinteractive/ansible-ufw
Лицензия
mit
Загрузки
220627
Владелец