状態を設定して、firewalldで開いている関連ポートを追加できるようにしようとしています。
私が見つけることができるすべての例を試しましたが、すべて失敗しました。
これが私の現在です:
firewalld:
service.running:
- enable: True
default_zone:
- public
services:
snmpd:
- short:
- snmp
- ports:
- udp:
- 161
- tcp:
- 161
ssh:
- short:
- ssh
- ports:
- tcp:
- 22
zones:
public:
- short:
- Public
- services:
- ssh
- snmpd
そして、これは次のミニオンでエラーにつながります:
SLS「firewalld.firewalld」の状態「firewalld」がリストとして形成されていません
私はこれを3つの異なるYAMLバリデーターで実行しましたが、すべてクリーンだと言っているので混乱しています。
公式リポジトリ のfirewalld-formula
を使用していると思いますか?
「SaltStackFormula」は「ピラーを使用して構成するすぐに使用できる状態」であることに注意してください。したがって、YAML宣言は[〜#〜]ではなく[〜#〜]は状態宣言である必要がありますが、代わりにピラー宣言。
説明させてください:
状態ファイルは/srv/salt
にあり、ピラーファイルは/srv/pillar
にあると仮定します。
firewalld-formula
を使用するには、「ピラー」ファイルを作成する必要があります。提供されているpillar.example
ファイルを使用して/srv/pillar/firewalld/<target-Host>.sls
として保存し、/srv/pillar/top.sls
から参照します。例えば:
# /srv/pillar/top.sls
base:
# ... other references we skip ...
'target-Host':
- firewalld.<target-Host>
注:ピラーファイルに<target-Host>.sls
という名前を付けることで、ホストごとに異なるピラーを簡単に作成できます。
次に、firewalld-formula
から/srv/salt/top.sls
(または/srv/salt/
ディレクティブを使用してinclude:
の下にある他の状態ファイル)を参照することにより、式を「アクティブ化」します。
firewalld-formula
リポジトリのクローンを次のように作成したと仮定します。
cd /srv/salt
git clone https://github.com/saltstack-formulas/firewalld-formula.git
ln -s firewalld-formula/firewalld firewalld
注:シンボリックリンクを使用すると、状態をfirewalld-formula.firewalld
ではなくfirewalld
として参照できます。
次に、/srv/salt/top.sls
ファイルを編集してfirewalld
状態を呼び出します。
# /srv/salt/top.sls
base:
# ... other references ...
'target-Host':
- firewalld
Aaand、これで完了です。
または、代わりに共通の状態を使用して、JinjaレンダラーとPillarシステムに「ターゲティング」の詳細を処理させることもできます。 top.sls
ファイルに次のものがあるとします。
# /srv/salt/top.sls
base:
'*':
# ...other states...
- hardening
# ...more states...
hardening
状態ファイルを次のように編集します。
# /srv/salt/hardening/init.sls
# ...various states we skip
include:
# ... possible other includes ...
{% if pillar.get('firewalld', false) -%}
# The following will be included *only* if pillar for the minion has the 'firewalld' key defined
- firewalld
{% endif -%}