Pedido de notificação inesperado do Puppet

1

Estou usando o fantoche vm para seguir o tutorial de marionetes e ter o seguinte manifesto:

# /root/learning-manifests/2.file.pp

file {
  '/tmp/test1':
  ensure        => present,
  content => "Hi.",
}

file {
  '/tmp/test2':
  ensure     => directory,
  mode => 0644,
}

file {
  '/tmp/test3':
  ensure       => link,
  target => '/tmp/test1',
}

notify {
  "I'm notifying you.":
}

notify {
  "So am I!":
}

Minha saída esperada é:

notice: I'm notifying you.
notice: /Stage[main]//Notify[I'm notifying you.]/message: defined 'message' as 'I'm notifying you.'
notice: So am I!
notice: /Stage[main]//Notify[So am I!]/message: defined 'message' as 'So am I!'

Minha saída real é:

notice: So am I!
notice: /Stage[main]//Notify[So am I!]/message: defined 'message' as 'So am I!'
notice: I'm notifying you.
notice: /Stage[main]//Notify[I'm notifying you.]/message: defined 'message' as 'I'm notifying you.'
notice: Finished catalog run in 0.06 seconds

Alguém pode explicar por que meus avisos foram transpostos?

Obrigado.

    
por Romski 22.12.2012 / 07:13

2 respostas

5

Como está escrito em esta página wiki do PuppetLabs sobre ordenação de fantoches:

Puppet might sync them in any order: unlike with a procedural language, the physical order of resources in a manifest doesn’t imply a logical order.

Você deve usar antes, exigir, notificar, assinar para definir dependências entre recursos em seus manifestos. Além disso, você pode definir suas dependências encadeando suas referências de recursos. Por exemplo:

notify {
  "I'm notifying you.":
}
-> 
notify {
  "So am I!":
}
    
por 22.12.2012 / 09:38
1

Para garantir a ordem de execução no boneco, é necessário ter alguma hierarquia de classes.

As definições dentro da classe única podem ser executadas em qualquer ordem, você não pode influenciá-la.

    
por 22.12.2012 / 09:30

Tags