Модуль community.general.iptables_state — сохранение состояния iptables в файл или восстановление из файла
Примечание
Этот модуль входит в коллекцию community.general (версия 12.6.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните команду ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.general. Для работы с этим модулем могут потребоваться дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.general.iptables_state.
Добавлено в community.general 1.1.0
Краткое описание
-
iptablesиспользуется для настройки, обслуживания и проверки таблиц правил фильтрации IP-пакетов в ядре Linux. - Этот модуль выполняет сохранение и/или загрузку правил. Это соответствует поведению команд
iptables-saveиiptables-restore(илиip6tables-saveиip6tables-restoreдля IPv6), которые модуль использует внутри. - Удалённое изменение состояния брандмауэра может привести к потере доступа к хосту в случае ошибки в новом наборе правил. В этом модуле предусмотрен механизм отката: хосту даётся указание восстановить предыдущие правила, если по истечении заданной задержки файл cookie всё ещё существует, а в течение этого времени контроллер пытается удалить этот файл cookie на хосте через новое соединение.
Примечание
Для этого модуля имеется соответствующий модуль действий.
Требования
На хосте, где выполняется этот модуль, необходимы следующие компоненты.
- iptables
- ip6tables
Параметры
Параметр | Комментарии |
|---|---|
counters логический | Сохранять или восстанавливать значения всех счётчиков пакетов и байтов. Если значение равно Варианты:
|
ip_version строка | Версия протокола IP, для которой должен применяться этот модуль. Варианты:
|
modprobe путь | Укажите путь к программе По умолчанию путь к исполняемому файлу определяется с помощью |
noflush логический | Применяется для Если значение равно Варианты:
|
path путь / обязательный | Файл, в который следует сохранить состояние iptables. Файл, из которого следует восстановить состояние iptables. |
state строка / обязательный | Следует ли сохранить состояние брандмауэра (в файл) или восстановить его (из файла). Варианты:
|
table строка | Если значение равно Если значение равно Варианты:
|
wait целое число | Ожидать N секунд освобождения блокировки xtables, чтобы избежать немедленного сбоя, если одновременно запущено несколько экземпляров программы. |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action | Поддержка: полная | Указывает, что для этого модуля есть соответствующий модуль действий, поэтому некоторые части параметров можно выполнить на контроллере. |
async | Поддержка: полная | Поддерживает использование с ключевым словом |
check_mode | Поддержка: полная | Может выполняться в режиме |
diff_mode | Поддержка: нет | В режиме diff возвращает сведения об изменениях (или о том, что может потребоваться изменить в |
Примечания
Примечание
- Механизм отката не является параметром модуля и зависит от атрибутов задачи. Чтобы включить его, модуль должен выполняться асинхронно, то есть для атрибута задачи
pollнужно задать значение0, а дляasync— значение, меньшее или равноеANSIBLE_TIMEOUT. Если значениеasyncбольше, откат всё равно произойдёт при необходимости, но вместо более подробной информации, возвращаемой модулем после сбоя, возникнет тайм-аут соединения.
Примеры
# This will apply to all loaded/active IPv4 tables.
- name: Save current state of the firewall in system file
community.general.iptables_state:
state: saved
path: /etc/sysconfig/iptables
# This will apply only to IPv6 filter table.
- name: save current state of the firewall in system file
community.general.iptables_state:
ip_version: ipv6
table: filter
state: saved
path: /etc/iptables/rules.v6
# This will load a state from a file, with a rollback in case of access loss
- name: restore firewall state from a file
community.general.iptables_state:
state: restored
path: /run/iptables.apply
async: "{{ ansible_timeout }}"
poll: 0
# This will load new rules by appending them to the current ones
- name: restore firewall state from a file
community.general.iptables_state:
state: restored
path: /run/iptables.apply
noflush: true
async: "{{ ansible_timeout }}"
poll: 0
# This will only retrieve information
- name: get current state of the firewall
community.general.iptables_state:
state: saved
path: /tmp/iptables
check_mode: true
changed_when: false
register: iptables_state
- name: show current state of the firewall
ansible.builtin.debug:
var: iptables_state.initial_state
Возвращаемые значения
Общие возвращаемые значения описаны здесь. Ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
applied логический | Указывает, было ли успешно восстановлено требуемое состояние. Возвращается: всегда Пример: |
initial_state список / элементы=строка | Текущее состояние брандмауэра на момент запуска модуля. Возвращается: всегда Пример: |
restored список / элементы=строка | Состояние, которое восстановил модуль, независимо от того, было ли оно в итоге применено. Возвращается: всегда Пример: |
saved список / элементы=строка | Состояние iptables, сохранённое модулем. Возвращается: всегда Пример: |
tables словарь | Состояние iptables в системе до выполнения модуля, разделённое по таблицам. Если используется параметр Возвращается: всегда Пример: |
|
table список / элементы=строка |
Политики и правила для всех цепочек указанной таблицы. Возвращается: при успешном выполнении |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/iptables_state_module.html