Ansible

Blockinfile在ansible中不起作用

  • May 29, 2017

我需要使用 ansible 在遠端主機上輸入數據塊,我嘗試過“blockinfile”但不成功..

但是當我在 omy 本地主機上執行相同的東西時它工作正常不知道為什麼

---
- 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

我看到你的劇本有兩個(也許三個)問題。參數Block不存在,為block小寫b。然後該塊沒有正確縮進。您需要將塊縮進超出塊參數的縮進。/tmp/fire.txt如果文件不存在,這也會失敗。

這是工作形式的劇本:

---
- 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

引用自:https://unix.stackexchange.com/questions/367809