Puppet - restringe ações por ambiente?

2

Como posso restringir os comandos do agente fantoche? Eu preciso apenas permitir que o agente fantoche funcione sem noop contra o ramo de produção.

  • Bloco puppet agent --test --environment devbranch
  • Permitir puppet agent --test --environment devbranch --noop
  • Permitir puppet agent --test --environment production

Eu acho que algum tipo de magia no auth.conf deve ser capaz de cuidar disso, mas eu não estou familiarizado o suficiente para fazer isso.

    
por Tim Brigham 05.09.2013 / 17:30

2 respostas

1

Com agradecimentos à @Zoredache, consegui fazer com que essa build fosse do jeito que eu preciso.

Estou usando a seção [principal] para criar e gerenciar dinamicamente ramificações e [produção] para substituir a configuração noop. Tenho certeza que isso também poderia ser feito em [agente], mas eu já tinha começado aqui.

[main]
    logdir = /var/log/puppet
    rundir = /var/run/puppet
    confdir = /puppet/$environment
    vardir = /puppet/.$environment-var
    ssldir=/etc/puppet/ssl
    environment = production
    server = puppet.domain.org
    pluginsync = true
    noop = true
    # Disable running all branches by default

[production]
    noop = false

EDITAR: Parece que falei cedo demais. O noop está sangrando. Embora a sintaxe acima esteja certa, uma das cavidades que eu examinei não permitirá que isso funcione. link

.. environments have some limitations, most of which are known bugs or vagaries of implementation rather than design choices.

Puppet will only read the modulepath, manifest, manifestdir, and templatedir settings from environment config blocks; other settings in any of these blocks will be ignored in favor of settings in the [master] or [main] blocks. (Issue 7497)

    
por 05.09.2013 / 22:00
0

Você não pode fazer assim, alguém que tenha acesso a linha de comando poderia impor praticamente qualquer opção.

Se você quiser controlar quem pode implantar o env, aconselho a usar o MCollective para executar o fantoche. Você pode criar ACLs bastante detalhadas e coordenar o fantoche em vários nós e fazer coisas como "implantar em 2 máquinas, se não falhar, implantar nos próximos 10, se não falhar, implantar em repouso".

    
por 12.09.2013 / 18:34

Tags