Blockinfile não está funcionando em ansible

0

Eu preciso inserir um bloco de dados em um host remoto usando ansible, eu tentei "blockinfile", mas não teve sucesso ..

Mas quando eu executo a mesma coisa em omy hosts locais, ele funciona bem, não sei porque

---
 - hosts: 1.1.0.1
   tasks:
   - name: putting /tmp/fire.txt File on all machine.
     blockinfile:
      dest: /tmp/fire.txt
      Block: | 


 *filter
    :INPUT   DROP   [0:0]
    :FORWARD DROP   [0:0]
    :OUTPUT  ACCEPT [0:0]
    -A INPUT -i lo -j ACCEPT
    -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
    -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
    -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
    -A INPUT -p udp --sport 53 -j ACCEPT
    -A INPUT -p tcp --dport 80   -j ACCEPT
    -A INPUT -p tcp --dport 443  -j ACCEPT
    -A INPUT -p tcp --dport 23   -j ACCEPT
    -A INPUT -p tcp --dport 22   -j ACCEPT
    -A INPUT -p tcp --dport 3260   -j ACCEPT --comment "Enable iscsi port"
    -A INPUT -p tcp --dport 119   -j ACCEPT --comment "Enable nfs TCP  port"
    -A INPUT -p tcp --dport 2049   -j ACCEPT --comment "Enable nfs UDP port"
    COMMIT
    
por Mohd 29.05.2017 / 04:35

2 respostas

3

Eu vejo dois (talvez três) problemas com o seu manual. O parâmetro Block não existe, é block com letra minúscula b. Em seguida, o bloco não está corretamente recuado. Você precisa recuar o bloco além do recuo do parâmetro de bloco. Além disso, isso falhará se o arquivo /tmp/fire.txt não existir.

Aqui está o manual em uma forma de trabalho:

---
 - hosts: 1.1.0.1
   tasks:
   - name: putting /tmp/fire.txt File on all machine.
     blockinfile:
      dest: /tmp/fire.txt
      block: | 


       *filter
          :INPUT   DROP   [0:0]
          :FORWARD DROP   [0:0]
          :OUTPUT  ACCEPT [0:0]
          -A INPUT -i lo -j ACCEPT
          -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
          -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
          -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
          -A INPUT -p udp --sport 53 -j ACCEPT
          -A INPUT -p tcp --dport 80   -j ACCEPT
          -A INPUT -p tcp --dport 443  -j ACCEPT
          -A INPUT -p tcp --dport 23   -j ACCEPT
          -A INPUT -p tcp --dport 22   -j ACCEPT
          -A INPUT -p tcp --dport 3260   -j ACCEPT --comment "Enable iscsi port"
          -A INPUT -p tcp --dport 119   -j ACCEPT --comment "Enable nfs TCP  port"
          -A INPUT -p tcp --dport 2049   -j ACCEPT --comment "Enable nfs UDP port"
          COMMIT
    
por 29.05.2017 / 09:04
0

Qualquer razão específica que você esteja usando o módulo blockinfile ao invés de salvar o arquivo while localmente em sua máquina em /tmp/fire.txt e depois usar o módulo copy?

---
 - hosts: 1.1.0.1
   tasks:
    - name: putting /tmp/fire.txt File on all machine.
      copy:
          src: /tmp/fire.txt
          dest: /tmp/fire.txt

Caso contrário, quando você estiver usando o blockinfile, o arquivo realmente existe no destino?

    
por 29.05.2017 / 08:53

Tags