Ansibleの変数と暗号化

変数の命名

数字、下線、文字のみを含める
ことができ、下線または文字でのみ開始できます

可変レベル

グローバル:コマンドラインからの構成ファイルまたは
プレイ中の設定:プレイで設定および
ホスト関連構造:ファクトまたは登録済みタスクのリスト
変数の優先度:狭い範囲および広い範囲の
変数設定で使用さ
れます
プレイブックで変数を直接定義するプレイブックを書く
vimuser.yml

ここに写真の説明を挿入
ファイル内の変数を定義し
た変数定義
のvimユーザリスト
ここに写真の説明を挿入
のvim user.yml
ここに写真の説明を挿入
設定ホスト変数と在庫変数が
使用
vimの在庫を
ここに写真の説明を挿入
vimのuser.ymlをホスト変数と在庫変数を定義するとき
ここに写真の説明を挿入

##ディレクトリ設定変数

mkdir group_vars
mkdir host_vars
vim group_vars / list2
ここに写真の説明を挿入
vim user.yml
ここに写真の説明を挿入
vim host_vars / 172.25.2.254
ここに写真の説明を挿入
vim user.yml
ここに写真の説明を挿入
複数のファイルが存在する場合、1つの変数が読み取り順序に従い、最後に読み取られた変数が前の変数を上書きします

##コマンドを使用して変数を上書きする

vim user.yml
ここに写真の説明を挿入
ansible-playbook user.yml
ここに写真の説明を挿入

ansible-playbook user.yml -e“ user = linux”

ここに写真の説明を挿入

配列を使用して変数を設定する

vim user_var.yml
ここに写真の説明を挿入

vim user.yml
ここに写真の説明を挿入

変数
registerを登録して、モジュール出力を指定された文字
vimhostname.ymlに登録します。
ここに写真の説明を挿入

vim showrc.yml
ここに写真の説明を挿入

実行、これはプレイブックの実行情報です

ここに写真の説明を挿入

この情報を表すために変数を使用します(ignore_errors = yesは、前の再生が実行に失敗したことを意味し、デフォルトはnoです)
ここに写真の説明を挿入

実行
ここに写真の説明を挿入


nod1の/ mnt / fileを削除し、ansible nod1.westos.com -m file -a'path = / mnt / file state =
Absent ' ansible-playbook file.ymlを
実行すると、操作が失敗したにもかかわらず、実行されていることがわかります。
ここに写真の説明を挿入

ファクト変数
ファクト変数は、制御対象ホストでansibleによって自動的に検出される変数です。
ファクト変数には、ホスト関連の情報が含まれます。ホスト関連の情報
を使用する必要がある場合は、値を収集して割り当てる必要はありません。直接呼び出すだけです。変数情報はシステム情報であるため、できません。任意の設定は情報収集のみであるため、ファクト変数になります。
たとえば、ip
vimip.ymlを確認してください
ここに写真の説明を挿入


プレイブックの演習nod1.westos.comで制御対象ホストのIP、ホストホスト、およびメモリを収集し、/ mnt / host
vimvhost.ymlに保存します。
ここに写真の説明を挿入

実行して表示

ここに写真の説明を挿入

テンプレート変数
hostvars:ansibleソフトウェアの内部情報

ここに写真の説明を挿入

group_names:現在の管理対象ホストのグループ

ここに写真の説明を挿入

グループ:リスト内のすべてのグループとホストを一覧表示します

ここに写真の説明を挿入

Inventory_hostname:インベントリに設定されている現在の管理対象ホストの名前が含まれます

JINJA2テンプレート

Jinja2は、Pythonで次に広く使用されているテンプレートエンジンです。
彼のデザインアイデアは、Djangoのテンプレートエンジンから派生し、その構文と一連の強力な関数を拡張しました。最も注目すべきものは、サンドボックス実行関数とオプションの追加です。ループvimuser.ymlのアドレス解決の書き込みなど
自動変換機能J2テンプレートの書き込みルール


ここに写真の説明を挿入

vim users.j2

ここに写真の説明を挿入

vim user.yml

ここに写真の説明を挿入

実行して表示

ここに写真の説明を挿入

演習
すべての制御対象ホストのIPとホスト名を収集し、制御対象ホストの/ mnt / host

vimhost.j2に保存します。
ここに写真の説明を挿入

vim host.yml
ここに写真の説明を挿入

実行して表示

ここに写真の説明を挿入

判断があれば
実験的なプレイブックを書く

vimuser_messages.yml
ここに写真の説明を挿入

vim user_messages.j2

ここに写真の説明を挿入

vim user_messages.yml

ここに写真の説明を挿入

実行して表示
ここに写真の説明を挿入



Ansibleでの暗号化制御ファイルの作成と確立ansible-vaultcreate westos

ここに写真の説明を挿入

見る

ここに写真の説明を挿入

ansibleを使用してパスワードを表示および入力します
ansible-vaultview westos

ここに写真の説明を挿入

ファイルにはパスワード
vimwestos-vaultが含まれています

ここに写真の説明を挿入

ansible-vault create --vault-password-file = westos-vault westos
view
westos-vaultに記述された文字列をパスワードとして使用)ansible-vault view --vault-password-file = westos-vault westos

ここに写真の説明を挿入

既存のファイルを暗号化する
vimwestos.yml

ここに写真の説明を挿入

ansible-vaultはwestos.ymlを暗号化します

ここに写真の説明を挿入

見る

ここに写真の説明を挿入

ansibleを使用して、表示するパスワードを入力します

ここに写真の説明を挿入

暗号化されたファイルを編集します(インデントに注意してください)
ansible-vault edit westos.yml

ここに写真の説明を挿入

ansibleで表示

ここに写真の説明を挿入

ファイルパスワード編集
ansible-vaultedit --vault-password- file = westos-vault westos
ここに写真の説明を挿入

ansibleで表示
ここに写真の説明を挿入

ファイルの
復号化ansible-vault復号化westos

ここに写真の説明を挿入

復号化された暗号化ファイルは別のファイルになり、元のファイルは変更されません
。ansible-vault復号化westos.yml --output = linux.yml

ここに写真の説明を挿入

パスワードを変更する
ansible-vaultrekey westos.yml
ここに写真の説明を挿入

ファイル変更パスワード
ansible-vaultrekey westos.yml --new-vault-password-file = key1(パスワードを書き込むにはkey1ファイルを編集する必要があります)
ここに写真の説明を挿入

暗号化されたファイルの操作
ファイルが暗号化された後は、playbookコマンドのみを実行できません。

ここに写真の説明を挿入
ansible-playbook westos、yml --ask-vault-pass
ここに写真の説明を挿入

おすすめ

転載: blog.csdn.net/qq_42958401/article/details/108647364