====== ansible ======
===== Usage =====
==== Add public key to server ====
0. Install ''sshpass'' first:
sudo pacman -S sshpass
1. Edit host inventory, add server host like this:
[test]
test1 ansible_ssh_host=1.1.1.1
test2 ansible_ssh_host=2.2.2.2
2. Create ''upload_ssh_keys.yml'':
---
- hosts: all
remote_user: root
tasks:
- name: upload key to server
authorized_key:
user: root
state: present
key: "{{ lookup('file', lookup('env', 'HOME') + '/.ssh/id_rsa.pub') }}"
3. Run ''ansible-playbook'' command and input password:
ansible-playbook -k -l test upload_ssh_keys.yml
==== Handling SSH host key prompts ====
When you first time connected to server, it would prompts you something like this:
The authenticity of host 'xxx (x.x.x.x)' can't be established.
ED25519 key fingerprint is xxxxxxxx.
Are you sure you want to continue connecting (yes/no)?
Solution: disable SSH key host checking:
[defaults]
host_key_checking = False
===== Tips =====
==== Set global host inventory variables ====
[all:vars]
ansible_port=22
ansible_user=root
ansible_ssh_private_key_file="~/.ssh/id_rsa"
==== Usage of sub-group ====
[test-db]
test-db1 ansible_host=1.1.1.1
[test-api]
test-api1 ansible_host=2.2.2.2
test-api2 ansible_host=3.3.3.3
[test:children]
test-db
test-api