debian:stable
パッケージインデックスキャッシュを更新し、ufw
Ansibleスキーマに拘束されることなく、バージョンに依存しない方法でインストールおよび設定するように設計された一部のシステムにAnsible PlayBookをデプロイしました。
- name: Update all apt package index cache (apt update)
apt: update_cache=yes
- name: Install a latest ufw
apt:
name: ufw
state: latest
- name: Setup firewall with ufw
ufw:
rule: allow
port: 22,25,80,443
私の困難はここにあります
Bashでもよく使用されていufw --force enable
ますが、Ansible-YAML構文を使用してPlaybookに追加する方法が見つかりませんでした。Ansible ufw ドキュメント。
私の質問
ufw --force enable
それでは、どのように正しく追加する必要がありますか?
答え1
シェルコマンドのみを実行するには、Ansibleshell
またはcommand
モジュールを使用できます。
今はufw
ルールファイルを直接編集しているようです。ソースコードを見ると、ジョブの前後にそれを実行して、そのファイルの内容が変更されたことを確認します。
grep '^### tuple' /lib/ufw/user.rules /lib/ufw/user6.rules /etc/ufw/user.rules /etc/ufw/user6.rules
有効化または無効化に関するstate
タスクは次のとおりです。
あなたが言う限り、state: enabled
あなたはそれをしますufw -f enable
if command == 'state':
states = {'enabled': 'enable', 'disabled': 'disable',
'reloaded': 'reload', 'reset': 'reset'}
execute(cmd + [['-f'], [states[value]]])