ansibleを使用してリモートホストにデータブロックを入力する必要がありますが、「blockinfile」を試しましたが、成功しませんでした。
しかし、localhostで同じタスクを実行すると、うまく機能しますが、なぜそうなのかわかりません。
---
- 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
答え1
あなたのスクリプトには2つの(おそらく3つの)問題があるようです。このパラメーターは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
答え2
コンピュータの/ tmp / fire.txtにローカルにwhileファイルを保存し、コピーモジュールを使用する代わりにblockinfileモジュールを使用する特別な理由はありますか?
---
- hosts: 1.1.0.1
tasks:
- name: putting /tmp/fire.txt File on all machine.
copy:
src: /tmp/fire.txt
dest: /tmp/fire.txt
それ以外の場合は、ブロックキンファイルを使用するときにそのファイルが実際にターゲットに存在しますか?