Fantoche - restringir ações por ambiente?

Fantoche - restringir ações por ambiente?

Como posso restringir os comandos do agente fantoche? Preciso apenas permitir que o agente fantoche seja executado sem noop no ramo de produção.

  • Bloquearpuppet agent --test --environment devbranch
  • Permitirpuppet agent --test --environment devbranch --noop
  • Permitirpuppet agent --test --environment production

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

Responder1

Graças ao @Zoredache consegui fazer essa build do jeito que preciso.

Estou usando a seção [principal] para criar e gerenciar ramificações dinamicamente e [produção] para substituir a configuração noop. Tenho certeza que isso também poderia ser feito em [agente], mas já comecei 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

EDIT: Parece que falei cedo demais. O noop está sangrando. Embora a sintaxe acima esteja correta, uma das advertências que examinei não permitirá que isso funcione.https://puppet.com/docs/puppet/latest/env_environments.html

.. os ambientes têm algumas limitações, a maioria das quais são bugs conhecidos ou caprichos de implementação, em vez de escolhas de design.

O Puppet lerá apenas as configurações modulepath, manifest, manifestdir e templatedir dos blocos de configuração do ambiente; outras configurações em qualquer um desses blocos serão ignoradas em favor das configurações nos blocos [master] ou [main]. (Edição 7497)

Responder2

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

Se você quiser controlar quem pode implantar qual ambiente, aconselho usarColetivopara correr fantoche. Você pode criar ACLs bastante detalhadas lá e coordenar fantoches em vários nós e fazer coisas como "implantar em 2 máquinas, se não falhar, implantar nas próximas 10, se não falhar, implantar em repouso".

informação relacionada