weareinteractive.ufw
Rola Ansible weareinteractive.ufw
weareinteractive.ufw
to rola Ansible, która:
- instaluje ufw
- konfiguruje ufw
- ustawia reguły ufw
- konfiguruje usługi
Instalacja
Używając ansible-galaxy
:
$ ansible-galaxy install weareinteractive.ufw
Używając requirements.yml
:
- src: weareinteractive.ufw
Używając git
:
$ git clone https://github.com/weareinteractive/ansible-ufw.git weareinteractive.ufw
Zależności
- Ansible >= 2.10
Zmienne
Oto lista wszystkich domyślnych zmiennych dla tej roli, które są również dostępne w defaults/main.yml
.
---
# Rozpoczyna działanie usługi i włącza ją podczas uruchamiania systemu
ufw_enabled: true
# Lista pakietów do zainstalowania
ufw_packages: ["ufw"]
# Nazwa usługi
ufw_service: ufw
# Lista reguł, które mają być zastosowane
# patrz https://docs.ansible.com/ansible/latest/collections/community/general/ufw_module.html w celu uzyskania dokumentacji
ufw_rules:
- rule: allow
to_port: 22
# Zarządzanie plikiem konfiguracyjnym
ufw_manage_config: false
# Obiekt konfiguracji przekazywany do pliku konfiguracyjnego
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: ""
# Ścieżka do pliku konfiguracyjnego
ufw_config_file: /etc/default/ufw
Obsługa
Oto zestaw handlerów zdefiniowanych w handlers/main.yml
.
---
- name: resetuj ufw
community.general.ufw:
state: reset
- name: przeładuj ufw
community.general.ufw:
state: reloaded
when: ufw_enabled | bool
Użycie
Oto przykład playbooka:
# @see https://docs.ansible.com/ansible/latest/collections/community/general/ufw_module.html#examples
---
- hosts: all
become: true
roles:
- weareinteractive.ufw
vars:
ufw_rules:
# Ustaw logging
- logging: "full"
# Zezwól na OpenSSH
- rule: allow
name: OpenSSH
# Usuń regułę OpenSSH
- rule: allow
name: OpenSSH
delete: true
# Zezwól na cały ruch na porcie tcp 80
- rule: allow
to_port: '80'
proto: tcp
# Zarządzaj plikiem konfiguracyjnym
ufw_manage_config: true
# Obiekt konfiguracji przekazywany do pliku konfiguracyjnego
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: ""
Testowanie
$ git clone https://github.com/weareinteractive/ansible-ufw.git
$ cd ansible-ufw
$ make test
Wkład
W zamiast formalnego przewodnika po stylu, staraj się zachować istniejący styl kodowania. Dodawaj testy jednostkowe i przykłady dla każdej nowej lub zmienionej funkcji.
- Forkuj projekt
- Utwórz gałąź funkcji (
git checkout -b my-new-feature
) - Zatwierdź swoje zmiany (
git commit -am 'Dodaj jakąś funkcję'
) - Wypchnij do gałęzi (
git push origin my-new-feature
) - Utwórz nowe zgłoszenie Pull Request
Uwaga: Aby zaktualizować plik README.md
, zainstaluj i uruchom ansible-readme
:
$ gem install ansible-readme
$ ansible-readme
Licencja
Copyright (c) We Are Interactive na licencji MIT.
Zainstaluj
ansible-galaxy install weareinteractive.ufw
Licencja
mit
Pobrania
240.4k
Właściciel