Puppet fonte um modelo, execute um comando, fonte outro modelo para o mesmo arquivo, execute o comando

0

Eu tive um bom crack nisso e estou lutando um pouco. Eu tenho um arquivo de console PHP5 chamado parameters.yml. Isso contém alguns metadados para se conectar a um banco de dados, executar alguns comandos e sair.

A primeira execução é perfeita, mas depois da primeira execução, eu preciso atualizar parameters.yml de um segundo modelo que contém metadados diferentes e depois executar um comando diferente. Fantoche, claro, reclama que:

Error: Evaluation Error: Error while evaluating a Resource Statement, Duplicate declaration

Eu tentei criar um define, definindo o nome do arquivo como uma variável na esperança de que o fantoche apenas o fizesse, mas infelizmente não. Infelizmente, não parece que o console do php me permite especificar onde ele encontrará o parameters.yml, o que me permitiria colocar dois arquivos para baixo e exec -parameters1.yml e, em seguida, console -parameters2.yml.

Aqui está o meu código:

module.pp
    define module::params_file ($content_variable, $params_notify) {
      file { "$title":
        owner   => 'root',
        group   => 'root',
        content => $content_variable,
        require => File['/home/admin.tar.bz2'],
        notify  => $params_notify,
      }
    }

parentFile:

module::params_file { '/home/components/app/config/parameters.yml':
    content_variable => "template('ace/admin/parameters.pre.yml.erb'),",
#    params_notify    => "Exec['php console --no-interaction doctrine:migrations:migrate'],",
    params_notify    => 'notice ("ACEInfo: This is applying the post-Config"),',
  }



# Execute /home/components/app/console ---no-interaction doctrine:migrations:migrate
  exec { 'php console --no-interaction doctrine:migrations:migrate':
    path        => "/usr/bin:/usr/sbin:/bin;/usr/bin/php;",
    cwd         => '/home/components/admin/app',
    refreshonly => true,
    require     => File['/home/components/admin/app/config/parameters.yml'],
  }

  module::params_file { '/home/components/app/config/parameters.yml':
    content_variable => "template('ace/admin/parameters.post.yml.erb'),",
#    params_notify    => "Exec['php console --no-interaction doctrine:migrations:migrate'],",
      params_notify    => 'notice ("ACEInfo: This is applying the post-Config"),',
    }

# Execute /home/components/admin/app/console ---no-interaction doctrine:migrations:migrate
  exec { 'php console setup:insert-permissions':
    path        => "/usr/bin:/usr/sbin:/bin;/usr/bin/php;",
    cwd         => '/home/components/admin/app',
    refreshonly => true,
    require     => File['/home/components/admin/app/config/parameters.yml'],
  }

Então, para fazer pequenas anotações

  1. modelo de origem / home / components / app / config / (pre) parameters.yml
  2. executar exec
  3. modelo de origem /home/components/app/config/(post)parameters.yml
  4. executar exac

Obrigado

    
por ds2000 04.03.2018 / 17:45

0 respostas