created: 2022-08-24T06:45:49.240Z
Linux に ansible を走らせる用の ssh できるユーザを追加して疎通確認
こちらの作業で ansible を走らせる際に使うユーザを追加したときのメモ。
ユーザ追加のスクリプト
# /var/log配下のログが閲覧できるようadmグループもつける
export CSV_GROUPS=sudo,adm
export USERNAME=myuser
sudo useradd --create-home --shell /bin/bash $USERNAME
sudo usermod -aG $CSV_GROUPS $USERNAME
echo "$USERNAME ALL=NOPASSWD: ALL" | sudo tee -a /etc/sudoers
# ssh
sudo mkdir -p /home/$USERNAME/.ssh/
# ここはなんとかして公開鍵(rsa.pub)をコピペしておく
sudo vi /home/$USERNAME/.ssh/authorized_keys
sudo chown -R $USERNAME:$USERNAME /home/$USERNAME/.ssh
sudo -u $USERNAME chmod 600 authorized_keys
参考
- 【 useradd 】コマンド――新規ユーザーを作成する:Linux 基本コマンド Tips(255) - @IT
- Linux でユーザーをグループに追加する - Qiita
- sudo のパスワードを入力なしで使うには - Qiita
接続情報
ansible の実行には2ファイルが必要。
- プレイブック
- eg: playbook.yml
- 実行するスクリプトを記述するファイル
- インベントリファイル
- eg: hosts.yml
- プロビジョニング先との接続情報を管理するファイル
インベントリファイルは yaml で書ける。
# ./hosts.yml
raspberrypi:
hosts:
raspberrypi.local
vars:
ansible_connection: ssh
ansible_ssh_user: myuser
ansible_ssh_private_key_file: ~/.ssh/myuser_raspberrypi_rsa
疎通の確認だけなら hosts.yml
だけでできる。
疎通確認
--module-name ping
でつながるかどうかが確認できる。
$ export HOST=raspberrypi
$ ansible -vvv --inventory ./hosts.yml $HOST --module-name ping
ansible [core 2.12.2]
config file = None
...(中略)...
raspberrypi.local | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3.9"
},
"changed": false,
"invocation": {
"module_args": {
"data": "pong"
}
},
"ping": "pong"
}
その他
sshpass を入れないと、ansibleはパスフレーズ付きのssh鍵をつかって実行できないので入れておく。
$ brew install hudochenkov/sshpass/sshpass