用户工具

站点工具


ansible

ansible

Usage

Add public key to server

0. Install sshpass first:

sudo pacman -S sshpass

1. Edit host inventory, add server host like this:

host
[test]
test1 ansible_ssh_host=1.1.1.1
test2 ansible_ssh_host=2.2.2.2

2. Create upload_ssh_keys.yml:

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:

ansible.cfg
[defaults]
host_key_checking = False

Tips

Set global host inventory variables

host
[all:vars]
ansible_port=22
ansible_user=root
ansible_ssh_private_key_file="~/.ssh/id_rsa"

Usage of sub-group

host
[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
ansible.txt · 最后更改: 2023/12/03 10:24 由 127.0.0.1