Como modificar o arquivo sudoers com ansible?

1

Temos um arquivo sudoers em /etc/sudoers.d/ops (em 10 servidores). Às vezes, precisamos adicionar vários usuários e Cmnd_Alias a esse arquivo. Como podemos automatizar isso com um playbook ansioso?

Nosso arquivo de sudoers:

User_Alias     OPS_USERS = user1,user2,user3

Cmnd_Alias     OPS_CMD = /sbin/ifconfig, /usr/sbin/dmidecode

OPS_USERS      ALL = NOPASSWD:OPS_CMD  
    
por Shyam Jos 07.03.2017 / 11:00

1 resposta

2

Pessoalmente, eu usaria um módulo de modelo ( link ). Eu prepararia um modelo de alguma forma semelhante a este:

User_Alias     OPS_USERS = {{ users|join(', ') }}

Cmnd_Alias     OPS_CMD = {{ commands|join(', ') }}

OPS_USERS      ALL = NOPASSWD:OPS_CMD

E nas variáveis eu colocaria algo assim:

users:
  - "user1"
  - "user2"
  - "user3"

commands: 
  - "/sbin/ifconfig"
  - "/usr/sbin/dmidecode"

Editar: Talvez seja necessário um pouco de explicação.

No modelo, usei um filtro que une strings com um determinado separador ( ',' ). Você pode encontrar mais sobre filtros aqui . É claro que as strings para concatenar são retiradas das listas ' usuários ' ou ' comando ' definidas na seção de variáveis do seu livro de jogo.

    
por 07.03.2017 / 12:20