Então, isso parece ser um problema que apareceu depois do CentOS 6.5. Há este tópico do portal do cliente, intitulado: iptables falhou ao iniciar no Red Hat Enterprise Linux 6.6 e versões superiores de instalação mínima. .
O problema direto é a ausência dos arquivos /etc/sysconfig/ip*
que o serviço iptables requer para iniciar. Você pode forçar a criação desses arquivos, executando um service iptables save
, porém fora da caixa, isso falhará também, porque os módulos do kernel são necessários para executar service iptables save
.
Isso é um pouco difícil!
A maneira mais fácil de contornar isso é induzir o carregamento desses dois módulos do kernel:
- iptables_filter
- ip_tables
executando um comando iptables
:
$ iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Você verá os módulos carregados agora:
$ lsmod | grep iptable
iptable_filter 2793 0
ip_tables 17831 1 iptable_filter
Você pode então fazer um service iptables save
para obter os arquivos perdidos criados, e assim iniciar o serviço iptables.
Ansible
O que precede é interessante, mas não é muito fácil de fazer através da Ansible, sem precisar da ajuda dos módulos command:
e shell:
.
No entanto, podemos usar o módulo modules:
no Ansible para garantir o carregamento / descarregamento de módulos do kernel.
Por exemplo:
### sets up FW pkgs
- name: Install FW packages
hosts: elasticsearch-servers
become: yes
tasks:
- name: install ipset
yum: name={{ item }} state=present
with_items:
- ipset
- iptables
# these next 2 tasks work around issue with iptables RPM in CentOS 6.5+
# REF: https://access.redhat.com/solutions/1361093
- name: load ip_tables kernel module
modprobe: name=iptable_filter state=present
- name: initial save iptables generate files
command: /sbin/service iptables save
args:
warn: false
- name: start iptables service
service: name=iptables state=started enabled=yes
Acima, estamos nos certificando de que o iptable_filter esteja presente antes de tentar salvá-lo.