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.
