Group hosts by SSH authentication method

This commit is contained in:
2026-05-19 07:41:48 +02:00
parent 5f5760b468
commit fd18fa6065
2 changed files with 53 additions and 8 deletions
+42 -7
View File
@@ -31,14 +31,44 @@ all:
Gardez `password_target_user` identique a `ansible_user` lorsque le compte SSH Gardez `password_target_user` identique a `ansible_user` lorsque le compte SSH
et le compte sudo sont les memes. et le compte sudo sont les memes.
Les options propres a un serveur, par exemple une cle SSH dediee, se placent sur L'inventaire separe les serveurs en deux familles :
```yaml
linux_servers:
hosts:
linux-server-01.example.com:
linux-server-02.example.com:
ansible_host: 192.0.2.10
ssh_key_servers:
vars:
ansible_ssh_private_key_file: ~/.ssh/id_ed25519
hosts:
test-server.example.com:
linux-server-01.example.com:
ssh_password_servers:
hosts:
linux-server-02.example.com:
```
- `ssh_key_servers` regroupe les serveurs accessibles avec une cle SSH. Le
chemin de la cle privee est factorise dans les variables du groupe.
- `ssh_password_servers` regroupe les serveurs accessibles avec un mot de passe
SSH. Utilisez `--ask-pass` pour ces hotes.
- `linux_servers` reste le groupe de rollout principal. Un hote peut appartenir
a la fois a `linux_servers` et a une famille d'authentification.
Si un serveur avec cle SSH utilise une cle differente, placez l'exception sur
l'entree de l'hote : l'entree de l'hote :
```yaml ```yaml
test: ssh_key_servers:
hosts: vars:
test-server.example.com:
ansible_ssh_private_key_file: ~/.ssh/id_ed25519 ansible_ssh_private_key_file: ~/.ssh/id_ed25519
hosts:
special-server.example.com:
ansible_ssh_private_key_file: ~/.ssh/special_server_key
``` ```
## Utilisation ## Utilisation
@@ -66,11 +96,16 @@ Puis ciblez le groupe complet lorsque le test est valide :
ansible-playbook playbooks/change_password.yml --ask-become-pass --limit linux_servers ansible-playbook playbooks/change_password.yml --ask-become-pass --limit linux_servers
``` ```
Si certains hotes utilisent un mot de passe SSH au lieu d'une cle SSH, ajoutez Pour cibler seulement les serveurs avec cle SSH :
`--ask-pass` :
```bash ```bash
ansible-playbook playbooks/change_password.yml --ask-pass --ask-become-pass --limit test ansible-playbook playbooks/change_password.yml --ask-become-pass --limit ssh_key_servers
```
Pour cibler les serveurs avec mot de passe SSH, ajoutez `--ask-pass` :
```bash
ansible-playbook playbooks/change_password.yml --ask-pass --ask-become-pass --limit ssh_password_servers
``` ```
## Verification ## Verification
+11 -1
View File
@@ -8,10 +8,20 @@ all:
test: test:
hosts: hosts:
test-server.example.com: test-server.example.com:
ansible_ssh_private_key_file: ~/.ssh/id_ed25519
linux_servers: linux_servers:
hosts: hosts:
linux-server-01.example.com: linux-server-01.example.com:
linux-server-02.example.com: linux-server-02.example.com:
ansible_host: 192.0.2.10 ansible_host: 192.0.2.10
ssh_key_servers:
vars:
ansible_ssh_private_key_file: ~/.ssh/id_ed25519
hosts:
test-server.example.com:
linux-server-01.example.com:
ssh_password_servers:
hosts:
linux-server-02.example.com: