Classes from inside classes can float outside of inheritance rules. Or
something like that.

Meaning if you have classes A and B and inside A you declare class C,
A -> B will not mean C -> B.

To solve this puppet has created the anchor function and after that
the contain function.

Read this for an explanation and how to use it:

https://docs.puppetlabs.com/puppet/latest/reference/lang_containment.html

Best regards,
Cristian Falcas



On Mon, Jan 12, 2015 at 1:59 AM,  <[email protected]> wrote:
> FWIW,
>
> the require at the class level didn't cut it.
>
> I tinkered around long enough to get the effect desired (create/mount lvm
> before installing mysql) .
>
> Inside my manifest I required the Mount["/var/lib/mysql"] for the package
> {"mysql":} , the mount requires the File["/var/lib/mysql"] (which is a
> directory)
>
>
>
>
>
> On Friday, January 9, 2015 at 10:33:33 AM UTC-6, [email protected] wrote:
>>
>> Hi,
>> I am struggling with getting a LVM created and mounted before mysql is
>> installed on the volume.
>>
>> Here my high level section:
>>
>> node /test/ inherits resources {
>>
>> ###
>> ##    Create Percona Database Server
>> ###
>>         class { 'xxx::network::db': }
>>         ->
>>         class { 'xxx::servercfg::dbvg': }
>>         ->
>>         class { 'xxx::database::dbdb': }
>>         ->
>>         class {'xxx::user::db': }
>> }
>>
>>
>>
>>
>>
>> the 'xxx::servercfg::dbvg' class is what I need to have completed before
>> the 'xxx::servercfg::dbdb' class
>>
>> the agent starts with:
>>
>> Info: Retrieving pluginfacts
>> Info: Retrieving plugin
>> Info: Loading facts
>> Info: Caching catalog for puppettest.lab1.topgolf.com
>> Info: Applying configuration version '1420819053'
>> Notice: /Stage[main]/xxx::User::Groups/Group[xxx]/ensure: current_value
>> absent, should be present (noop)
>> Notice: /Stage[main]/xxx::User::Virtual/User[xxx]/ensure: current_value
>> absent, should be present (noop)
>> Notice:
>> /Stage[main]/Mysql::Server::Config/File[/etc/mysql/my.cnf]/content:
>>
>>
>>
>>
>> As you can see, the agent configuration starts with user config, which is
>> the last in the chain  class {'xxx::user::db': }
>>
>>
>>
>>
>> the configuration continues:
>>
>>
>> Notice: /Stage[main]/xxx::User::Groups/Group[xxx]/gid: current_value 1001,
>> should be 2006 (noop)
>> Notice: Class[Topgolf::User::Groups]: Would have triggered 'refresh' from
>> 2 events
>> Notice: /Stage[main]/xxx::User::Virtual/User[xxx]/uid: current_value 1001,
>> should be 2006 (noop)
>> Notice: /Stage[main]/xxx::User::Virtual/User[xxx]/gid: current_value 1001,
>> should be 2006 (noop)
>> Notice: /Stage[main]/xxx::User::Virtual/User[xxx]/comment: current_value ,
>> should be Tony Juhasz (noop)
>> Notice: /Stage[main]/xxx::User::Virtual/User[xxx]/password: current_value
>> [old password hash redacted], should be [new password hash redacted] (noop)
>> Notice: /Stage[main]/xxx::User::Virtual/User[xxx]/groups: current_value
>> sudo, should be mysql,sudo (noop)
>> Notice: Class[xxx::User::Virtual]: Would have triggered 'refresh' from 6
>> events
>> Notice: /Stage[main]/xxx::Apt::Cleanup/Exec[remove old apt stuff]/returns:
>> current_value notrun, should be 0 (noop)
>> Notice: Class[xxx::Apt::Cleanup]: Would have triggered 'refresh' from 1
>> events
>> Notice: Class[Mysql::Server::Config]: Would have triggered 'refresh' from
>> 1 events
>> Info: Class[Mysql::Server::Config]: Scheduling refresh of
>> Class[Mysql::Server::Service]
>> Notice: Class[Mysql::Server::Service]: Would have triggered 'refresh' from
>> 1 events
>> Info: Class[Mysql::Server::Service]: Scheduling refresh of Service[mysqld]
>> Notice: /Stage[main]/Mysql::Server::Service/Service[mysqld]: Would have
>> triggered 'refresh' from 1 events
>> Notice: Class[Mysql::Server::Service]: Would have triggered 'refresh' from
>> 1 events
>> Notice:
>> /Stage[main]/xxx::Servercfg::Dbvg/Lvm::Volume[db]/Physical_volume[/dev/sdb]/ensure:
>> current_value absent, should be present (noop)
>> Notice:
>> /Stage[main]/xxx::Servercfg::Dbvg/Lvm::Volume[db]/Volume_group[ubuntu-vg]/physical_volumes:
>> current_value /dev/sda5, should be /dev/sdb (noop)
>> Notice:
>> /Stage[main]/xxx::Servercfg::Dbvg/Lvm::Volume[db]/Logical_volume[db]/ensure:
>> current_value absent, should be present (noop)
>> Notice:
>> /Stage[main]/xxx::Servercfg::Dbvg/Lvm::Volume[db]/Filesystem[/dev/ubuntu-vg/db]/ensure:
>> current_value absent, should be present (noop)
>> Notice: Lvm::Volume[db]: Would have triggered 'refresh' from 4 events
>> Notice: /Stage[main]/xxx::Servercfg::Dbvg/File[/var/lib/mysql]/mode:
>> current_value 0700, should be 0755 (noop)
>> Notice: /Stage[main]/xxx::Servercfg::Dbvg/Mount[/var/lib/mysql]/ensure:
>> current_value absent, should be mounted (noop)
>> Info: /Stage[main]/xxx::Servercfg::Dbvg/Mount[/var/lib/mysql]: Scheduling
>> refresh of Mount[/var/lib/mysql]
>> Notice: /Stage[main]/xxx::Servercfg::Dbvg/Mount[/var/lib/mysql]: Would
>> have triggered 'refresh' from 1 events
>> Info: /Stage[main]/xxx::Servercfg::Dbvg/Mount[/var/lib/mysql]: Scheduling
>> refresh of Mount[/var/lib/mysql]
>> Notice: Class[xxx::Servercfg::Dbvg]: Would have triggered 'refresh' from 4
>> events
>> Info: Class[xxx::Servercfg::Dbvg]: Scheduling refresh of
>> Class[xxx::Database::Dbdb]
>> Notice: Class[xxx::Database::Dbdb]: Would have triggered 'refresh' from 1
>> events
>> Notice: /Stage[main]/xxx::User::Db/File[/home/xxx]/ensure: current_value
>> absent, should be directory (noop)
>> Notice: Class[xxx::User::Db]: Would have triggered 'refresh' from 1 events
>> Notice: /Stage[main]/Main/Node[resources]/Notify[The hostname is
>> puppettest]/message: current_value absent, should be The hostname is
>> puppettest (noop)
>> Notice: Node[resources]: Would have triggered 'refresh' from 1 events
>> Notice: Class[Main]: Would have triggered 'refresh' from 1 events
>> Notice: /Stage[main]/xxx::Resolver/File[/etc/resolv.conf]/ensure:
>> current_value file, should be link (noop)
>> Notice: Class[xxx::Resolver]: Would have triggered 'refresh' from 2 events
>> Notice: Stage[main]: Would have triggered 'refresh' from 9 events
>>
>>
>>
>> I've used a require statement in the dbdb class that is called, I've
>> reversed the arrows, the output seems to be the same
>>
>>
>> What happens most of the time (after having to run puppet agent -t
>> three-four times) is that mysql is installed under /var/lib/mysql, and THEN
>> the volume group is mount onto /var/lib/mysql
>>
>> This has completed successfully once or twice, but is not nearly as
>> reliable as I'd like it to be.
>>
>>
>> Any help with this is appreciated:
>>
>> More Information:
>>
>>  puppet agent -version:  3.7.1
>>
>> puppet master version:  3.7.1
>>
>> OS:  Ubuntu 12.04 LTS
>>
>> lvm module:    "name": "puppetlabs-lvm",
>>   "version": "0.4.0",
>>   "author": "Puppet Labs",
>>
>>
>>
>>
>> Thanks in advance for any help on this matter
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/puppet-users/475366d4-19e9-45e4-917e-5645b02ca67d%40googlegroups.com.
>
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/CAMo7R_eGir5DTZf81f3%2B7GC_GKxO-c1%3Dx9d%3DdBWzeZiZh2EMMA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to