Estou tentando descobrir uma maneira de gerenciar a barra de publicação de um único usuário em vários sites, bem como soltar essa chave em vários diretórios $ HOME . Razão de ser; nossos desenvolvedores se registram como eles para checar as coisas, rodem sudo
etc, porém eles implementam o código como um usuário passageiro sobre SSH para que seu pubkey esteja em ~ / home / passenger /. ssh / authorized_keys também.
Não tenho certeza se alterar AuthorizedKeysFile
em /etc/ssh/sshd_config
deixaria isso menos louco, mas como estou quase lá com meu manual atual, achei que poderia postar a pergunta como está e ver o que acontece isto. Talvez isso seja melhor resolvido de outra maneira.
No meu arquivo homedirs.yml
, eu crio os diretórios pessoais do usuário (eles existem no LDAP) e, em seguida, movo sua pubkey para o lugar. Isso funciona bem para seu próprio diretório inicial, mas o usuário passenger
também precisa dessa chave. Como posso usar este manual para outros usuários e hosts, defini uma to_user:
list que define para quais diretórios home o pubkey deve ser configurado.
Como faço um loop pela lista {{ item.to_user }}
no authorized_key:
play, onde {{ item.name }}
é atualmente referenciado?
playbook
---
- hosts: all
vars_files:
- ../group_vars/homedirs.yml
gather_facts: false
tasks:
- name: Set up home directory
when: inventory_hostname in item.allowed_hosts
file:
path: "/home/{{ item.name }}"
state: directory
owner: "{{ item.name }}"
group: "{{ item.group }}"
mode : 0750
with_items: "{{ homedirs }}"
- name: setup ssh pub key
when: inventory_hostname in item.allowed_hosts
authorized_key:
user: '{{ item.name }}'
state: present
key: '{{ item.pubkey }}'
with_items: "{{ homedirs }}"
homedirs.yml
# homedirs.yml
homedirs:
- name : usr123
group : developers
pubkey : "{{ lookup('file', '../group_vars/pubkeys/[email protected]') }}"
to_user:
- user123
- passenger
allowed_hosts :
- web1.my.com
- web1.test.my.com
- name : usr555
group : admin
pubkey : "{{ lookup('file', '../group_vars/pubkeys/[email protected]') }}"
to_user:
- user555
- sysadmin
allowed_hosts :
- blah.blah.host