ansibleでハッシュの配列 をチェックする方法
ansibleでハッシュの
1.はじめに
ということで、ansibleでハッシュの
2.やりたいこと
ファイルのパスも
また、コンフィグはrolesディレクトリの
3.コンフィグのサンプル
/var/tmp/config.yml
files:
- name: kdump
path: /etc/sysconfig
md5sum: e417c7b5754df7287f41b478f2200793
- name: CentOS-Base.repo
path: /etc/yum.repos.d
md5sum: 447b4d2df1a36e64348bbd8b6c5b0fae
- name: sysctl.conf
path: /etc
md5sum: 4bae3962eeef7d1e7c7ef39314db9fb0
"files"というハッシュキーの
- ファイル
名 - ファイルパス
- md5sum
値
を
これをansibleで
4.コンフィグファイルの読 み込 み
コンフィグファイルを
test.yml
- hosts: test
roles:
- role: test
vars_files:
- "/var/tmp/config.yml"
これで、
5.ハッシュの配列 をチェック
ハッシュの
roles/test/tasks/main.yml
- name: ファイルのmd5sum実行
command: "md5sum {{ item.path }}/{{ item.name }}"
loop: "{{ files }}"
register: file_md5_result
changed_when: false
- name: ファイルのmd5sum結果 取得
set_fact:
md5sum_result: "{{ item.stdout.split(' ')[0] }}"
loop: "{{ file_md5_result.results }}"
register: file_md5
- name: コンフィグのmd5sumと比較
fail:
msg: "### {{ item.name }}のmd5sumが一致 しません ###"
failed_when: item.md5sum != file_md5.results[index].ansible_facts.md5sum_result
loop: "{{ files }}"
loop_control:
index_var: index
タスクの
- name: ファイルのmd5sum実行
command: "md5sum {{ item.path }}/{{ item.name }}"
loop: "{{ files }}"
register: file_md5_result
changed_when: false
- name: ファイルのmd5sum結果 取得
set_fact:
md5sum_result: "{{ item.stdout.split(' ')[0] }}"
loop: "{{ file_md5_result.results }}"
register: file_md5
- name: コンフィグのmd5sumと比較
fail:
msg: "### {{ item.name }}のmd5sumが一致 しません ###"
failed_when: item.md5sum != file_md5.results[index].ansible_facts.md5sum_result
loop: "{{ files }}"
loop_control:
index_var: index
failed_whenは、
ここでは、コンフィグのmd5sum
タスクを
「index_var: index」は、ループのインデックス(0から
これを
bashスクリプトでCSVファイルを読 み込 む方法
bashスクリプトでCSVファイルを
1.問題 点
bashスクリプトで
ということで、bashスクリプトでCSVファイルを
2.bashスクリプトでCSVファイルを読 み込 む
ここではCSVファイルに「
山田 ,yamada,GU2LTgyM
鈴木 ,suzuki,Njg4ZWYz
佐藤 ,sato,b291bf53
bashスクリプト(test.sh)でCSVファイルを
#!/bin/bash
# 引数 でCSVファイル名 を取得
input_file="$1"
# CSVファイルを行 ごとに読 み込 み
while IFS=',' read -r NAME USER PASS; do
echo "名前 : $NAME"
echo "ユーザー名 : $USER"
echo "パスワード: $PASS"
# ここに必要 な処理 を追加
done < "$input_file"
これでCSVファイルの
あとは、
$ ./test.sh sample.csv
名前 : 山田
ユーザー名 : yamada
パスワード: GU2LTgyM
名前 : 鈴木
ユーザー名 : suzuki
パスワード: Njg4ZWYz
名前 : 佐藤
ユーザー名 : sato
パスワード: b291bf53
#!/bin/bash
# 引数 でCSVファイル名 を取得
input_file="$1"
# 引数 が指定 されていない場合 のエラーメッセージ
if [[ -z "$input_file" ]]; then
echo "使用 法 : $0 <CSVファイル名 >"
exit 1
fi
# CSVファイルを行 ごとに読 み込 み
while IFS=',' read -r NAME USER PASS; do
echo "名前 : $NAME"
echo "ユーザー名 : $USER"
echo "パスワード: $PASS"
# ここに必要 な処理 を追加
done < "$input_file"
さらに、CSVファイルにコメント
#!/bin/bash
# 引数 でCSVファイル名 を取得
input_file="$1"
# 引数 が指定 されていない場合 のエラーメッセージ
if [[ -z "$input_file" ]]; then
echo "使用 法 : $0 <CSVファイル名 >"
exit 1
fi
# CSVファイルを行 ごとに読 み込 み
while IFS=',' read -r NAME USER PASS; do
# 空行 やコメント行 はスキップ
if [[ -z "$NAME" || "$NAME" =~ ^# ]]; then
continue
fi
echo "名前 : $NAME"
echo "ユーザー名 : $USER"
echo "パスワード: $PASS"
# ここに必要 な処理 を追加
done < "$input_file"
TeraTermで「サーバはこのマシンに転送 を試 みました」のメッセージを抑止 する方法
TeraTermで「サーバはこのマシンに
1.問題 点
TeraTermでサーバにログインすると
サーバはこのマシンに
localhost
このダイアログを
ということで、TeraTermで「サーバはこのマシンに
2.「サーバはこのマシンに転送 を試 みました」のメッセージを抑止 する
メッセージを
「リモートのXアプリケーションをローカルのXサーバに
これでSSHログイン