ansibleからsshのpassword認証用
apt install -y sshpass
サンプル
- BargeOS にssh鍵を置いてパスワード認証を無効にするサンプル
main.yml
main.yml
---
- hosts: all
sudo: yes
gather_facts: no
vars:
authorized_keys: "{{ lookup('file', '../../sshprivate/authorized_keys') }}"
# ------------------------
tasks:
- name: .ssh/authorized_keys
raw: |
KEY="/home/bargee/.ssh/authorized_keys"
install -o bargee -g bargees -m 0700 -d /home/bargee/.ssh/
echo "{{authorized_keys}}" > $KEY
chown bargee:bargees $KEY
chmod 600 $KEY
- name: /etc/ssh/sshd_config
raw: |
grep "PasswordAuthentication no" /etc/ssh/sshd_config \
|| (sed -i -e 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config \
&& sshd -t
&& /etc/init.d/S50sshd restart)
hosts
[barge]
b3 ansible_host=192.168.1.2
[all:vars]
ansible_ssh_private_key_file=~/sshprivate/id_rsa
ansible_ssh_user=bargee
ansible_ssh_port=22
注意点
- python が入っていないため
- raw モジュールでコマンド実行する。
- gather_facts: no
- sshパスワード認証は
--ask-pass
もしくは-k
オプションを付ける。ansible-playbook main.yml -i hosts --ask-pass
- yaml 書き方参考 : Rubyist Magazine - プログラマーのための YAML 入門 (初級編)