Puppet EXEC: ejecuta parte del código solo después de ejecutar otra parte

0

Tengo el siguiente código de marioneta:

  exec { 'set mysql root password':
    user    => root,
    path   => "/usr/bin:/usr/sbin:/bin",
    command => "/usr/bin/mysqladmin -u root password \'${root_pwd}\'",
    onlyif  => 'grep /etc/mysql_root_password_setup.cf -nrw -e \'0\'', 
  }

  exec { 'set mysql hostname password':
    user    => root,
    path   => "/usr/bin:/usr/sbin:/bin",
    command => "/usr/bin/mysqladmin -u root -h ${::fqdn} password \'${root_pwd}\'",
    onlyif  => 'grep /etc/mysql_root_password_setup.cf -nrw -e \'0\'',
  }

  exec { 'Modify the Breadcrumb':
    user    => root,
    path   => "/usr/bin:/usr/sbin:/bin",
    command => "echo 1 > /etc/mysql_root_password_setup.cf",
    onlyif  => 'grep /etc/mysql_root_password_setup.cf -nrw -e \'0\'',
  }

Como puede ver, estoy ejecutando tres comandos exec. El primero establece la contraseña de Mysql, el segundo hace lo mismo, el tercero escribe 1 en un archivo de ruta de navegación /etc/mysql_root_password_setup.cf.

Quiero que el tercer ejecutivo se ejecute solo después de completar los dos primeros ejecutivos.

¿Cómo puedo decirle a Puppet que los ejecute en el orden en que están definidos en el archivo de clase?

Español89
fuente

Respuestas:

3

Puedes usar el requireparámetro de Puppet .

Por ejemplo:

  exec { 'set mysql root password':
    ... 
  }

  exec { 'set mysql hostname password':
    require => Exec['set mysql root password'],
    ...
  }

  exec { 'Modify the Breadcrumb':
    require => Exec['set mysql hostname password'],
    ...
  }
Craig Watson
fuente
Gracias eso fue mucho más fácil de lo que pensé.
Español89