Ansibleのlookupプラグインでローカルファイルの内容を取得する
実現したいこと
Ansibleのlookupプラグインを使用してローカルファイルの内容を取得し、利用できるようにします。
パスワードを記載したファイルをローカルに配置し、その内容をlookupで取得して、リモートマシンのユーザパスワードを変更します。
※Ansibleの環境については過去の記事をご参照ください。
ローカルファイル
使用するファイルはpassword.txtとします。
ランダムで生成した12文字のパスワードを設定します。
password.txt
6u&tEbSg#%-!
Ansible設定
main.ymlを作成します。
①lookupプラグインでファイルからパスワードを取得して変数に入れる。
②リモートマシンのユーザパスワードを変更する。
③確認のため、設定したパスワードを表示する。
main.yml
- hosts: targets
become: yes
gather_facts: no
vars:
changed_password: "{{lookup('file', './password.txt')}}"
tasks:
##################################################
# Change password
##################################################
- name: Change password
user:
name: test-user
password: "{{ changed_password | password_hash('sha512') }}"
##################################################
# Show password
##################################################
- name: show password
debug:
msg: '{{ changed_password }}'
実行結果
パスワードが変更できました。
$ ansible-playbook -i ./inventory ./main.yml
PLAY [targets] ******************************************************************************************
TASK [Change password] **********************************************************************************
changed: [10.0.1.100]
TASK [show password] ************************************************************************************
ok: [10.0.1.100] => {
"msg": "6u&tEbSg#%-!"
}
PLAY RECAP **********************************************************************************************
10.0.1.100 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
lookupとregex_searchを組み合わせる
正規表現を使ってファイルの内容を取得する場合は、regex_searchを組み合わせます。
以下のpassword.txtからパスワードを取得することを想定します。
password.txt
password=6u&tEbSg#%-!
main.ymlのvarsの記載を変更します。
main.yml
vars:
changed_password: "{{ lookup('file', './password.txt') | regex_search('(?<=password=).{12}') }}"
Author And Source
この問題について(Ansibleのlookupプラグインでローカルファイルの内容を取得する), 我々は、より多くの情報をここで見つけました https://qiita.com/latin1/items/352932841e5b74df22a8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .