Puppet classes out of order despite explicit arrow operator use
- by Alexandr Kurilin
Absolute puppet beginner here. I'm experiencing an interesting behavior with my puppet manifests and would love to know what I'm doing wrong. Let's for example say I'm configuring the instance with the following ordered classes:
class { 'update_system': } ->
class { 'facter': } ->
class { 'user_sshkey': user => 'ubuntu', type => 'rsa', } ->
class { 'tmux': user => 'ubuntu', } ->
class { 'vim': user => 'ubuntu', } ->
class { 'bashrc': user => 'ubuntu' } ->
notify {"Configuring DB role":} ->
class { 'postgresql': }
when I run the manifest with the --debug switch, by looking at notify statements I can see the classes be executed in the following order:
1. update_system starts
2. a cron type inside of postgresql class (the very **last** class in that ordered list above) is executed
3. postgres::install starts
5. facter starts installing
6. postgres::configure and postgres::service start
7. the vim class is executed
8. "Configuring DB role" notification is made. All the way at the end here.
etc
Basically the thing is all over the place, the order doesn't seem to follow the arrow operators in any way.
I'm guessing I'm missing something here that would force the classes to execute one at a time. Could it be that I'm missing some kind of anchor pattern here? Invalid containment?