Hello,
I''m trying to share a file between the client and the server.
On the server the file is located at: /etc/puppet/modules/mysql-server/
files/my.cnf
the code that references to this file is as follows:
file { "/etc/mysql/my.cnf":
source => "puppet:///modules/mysql-server/my.cnf",
owner => "mysql", group => "mysql",
mode => 644,
notify => Service["mysql"],
}
Essentially, I want the client to store the my.cnf file to /etc/mysq/
my.cnf
However i keep getting this error:
err: /Stage[main]/Mysql-server/File[/etc/mysql/my.cnf]/ensure: change
from absent to file failed: Could not set ''file on ensure: No such
file or directory - /etc/mysql/my.cnf.puppettmp_9888 at /etc/puppet/
modules/mysql-server/manifests/init.pp:15
i tried setting source => "puppet:///modules/mysql-server/files/
my.cnf",
But that did not make a difference. Please help.
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to
puppet-users+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.
On Wed, 12 Oct 2011 14:33:47 -0700, John Bower wrote:> > Hello, > > I''m trying to share a file between the client and the server. > > On the server the file is located at: /etc/puppet/modules/mysql-server/ > files/my.cnf > > the code that references to this file is as follows: > > file { "/etc/mysql/my.cnf": > source => "puppet:///modules/mysql-server/my.cnf", > owner => "mysql", group => "mysql", > mode => 644, > notify => Service["mysql"], > } > > Essentially, I want the client to store the my.cnf file to /etc/mysq/ > my.cnf > > However i keep getting this error: > err: /Stage[main]/Mysql-server/File[/etc/mysql/my.cnf]/ensure: change > from absent to file failed: Could not set ''file on ensure: No such > file or directory - /etc/mysql/my.cnf.puppettmp_9888 at /etc/puppet/ > modules/mysql-server/manifests/init.pp:15 > > > > i tried setting source => "puppet:///modules/mysql-server/files/ > my.cnf", > > > But that did not make a difference. Please help. >Does /etc/mysql exist on the client machine? -- Jacob Helwig
Hi Jacob,
My init.pp file is a symbolic link to the mysql-server.pp in the classes
directory. It looks like this:
-------
class mysql-server {
package { "mysql-server": ensure => installed }
package { "mysql-client": ensure => installed }
service { "mysql":
enable => false,
require => Package["mysql-server"],
}
file { "/etc/mysql/my.cnf":
source => "puppet:///modules/mysql-server/my.cnf",
owner => "mysql", group => "mysql",
mode => 644,
notify => Service["mysql"],
}
exec { "run-mysqld":
path => ["/bin", "/usr/sbin"],
command => "/usr/sbin/mysqld &",
}
exec { "set-mysql-password":
path => ["/bin", "/usr/bin"],
command => "mysqladmin -uroot password secret",
}
exec { "set-nagios-password":
path => ["/bin", "/usr/bin"],
command => "/usr/bin/mysql -u root -e \"CREATE USER
''nagios''@''%''
IDENTIFIED BY ''secret'';\"",
}
}
---------------------------
It looks like it does indeed try to create the my.cnf file before mysql gets
installed. How can i rectify that
Thanks!!
On Wed, Oct 12, 2011 at 5:37 PM, Jacob Helwig <jacob@puppetlabs.com>
wrote:
> On Wed, 12 Oct 2011 14:33:47 -0700, John Bower wrote:
> >
> > Hello,
> >
> > I''m trying to share a file between the client and the server.
> >
> > On the server the file is located at:
/etc/puppet/modules/mysql-server/
> > files/my.cnf
> >
> > the code that references to this file is as follows:
> >
> > file { "/etc/mysql/my.cnf":
> > source => "puppet:///modules/mysql-server/my.cnf",
> > owner => "mysql", group => "mysql",
> > mode => 644,
> > notify => Service["mysql"],
> > }
> >
> > Essentially, I want the client to store the my.cnf file to /etc/mysq/
> > my.cnf
> >
> > However i keep getting this error:
> > err: /Stage[main]/Mysql-server/File[/etc/mysql/my.cnf]/ensure: change
> > from absent to file failed: Could not set ''file on ensure: No
such
> > file or directory - /etc/mysql/my.cnf.puppettmp_9888 at /etc/puppet/
> > modules/mysql-server/manifests/init.pp:15
> >
> >
> >
> > i tried setting source =>
"puppet:///modules/mysql-server/files/
> > my.cnf",
> >
> >
> > But that did not make a difference. Please help.
> >
>
> Does /etc/mysql exist on the client machine?
>
> --
> Jacob Helwig
>
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to
puppet-users+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.
Try:
file { "/etc/mysql":
ensure => directory,
mode => 0755,
owner => root,
group => root,
}
file { "/etc/mysql/my.cnf":
source => "puppet:///modules/mysql-server/my.cnf",
owner => "mysql", group => "mysql",
mode => 644,
notify => Service["mysql"],
require => File["/etc/mysql"]
}
--
Nathan Clemons
http://www.livemocha.com
The worlds largest online language learning community
On Wed, Oct 12, 2011 at 2:49 PM, olympus stance
<olympus.stance@gmail.com>wrote:
> Hi Jacob,
>
> My init.pp file is a symbolic link to the mysql-server.pp in the classes
> directory. It looks like this:
>
> -------
> class mysql-server {
>
> package { "mysql-server": ensure => installed }
> package { "mysql-client": ensure => installed }
> service { "mysql":
> enable => false,
> require => Package["mysql-server"],
>
> }
>
> file { "/etc/mysql/my.cnf":
> source => "puppet:///modules/mysql-server/my.cnf",
> owner => "mysql", group => "mysql",
> mode => 644,
> notify => Service["mysql"],
> }
>
>
>
> exec { "run-mysqld":
> path => ["/bin", "/usr/sbin"],
> command => "/usr/sbin/mysqld &",
> }
>
> exec { "set-mysql-password":
> path => ["/bin", "/usr/bin"],
> command => "mysqladmin -uroot password secret",
> }
>
>
> exec { "set-nagios-password":
> path => ["/bin", "/usr/bin"],
> command => "/usr/bin/mysql -u root -e \"CREATE USER
''nagios''@''%''
> IDENTIFIED BY ''secret'';\"",
> }
>
>
> }
> ---------------------------
>
>
> It looks like it does indeed try to create the my.cnf file before mysql
> gets installed. How can i rectify that
>
> Thanks!!
>
>
> On Wed, Oct 12, 2011 at 5:37 PM, Jacob Helwig
<jacob@puppetlabs.com>wrote:
>
>> On Wed, 12 Oct 2011 14:33:47 -0700, John Bower wrote:
>> >
>> > Hello,
>> >
>> > I''m trying to share a file between the client and the
server.
>> >
>> > On the server the file is located at:
/etc/puppet/modules/mysql-server/
>> > files/my.cnf
>> >
>> > the code that references to this file is as follows:
>> >
>> > file { "/etc/mysql/my.cnf":
>> > source =>
"puppet:///modules/mysql-server/my.cnf",
>> > owner => "mysql", group => "mysql",
>> > mode => 644,
>> > notify => Service["mysql"],
>> > }
>> >
>> > Essentially, I want the client to store the my.cnf file to
/etc/mysq/
>> > my.cnf
>> >
>> > However i keep getting this error:
>> > err: /Stage[main]/Mysql-server/File[/etc/mysql/my.cnf]/ensure:
change
>> > from absent to file failed: Could not set ''file on
ensure: No such
>> > file or directory - /etc/mysql/my.cnf.puppettmp_9888 at
/etc/puppet/
>> > modules/mysql-server/manifests/init.pp:15
>> >
>> >
>> >
>> > i tried setting source =>
"puppet:///modules/mysql-server/files/
>> > my.cnf",
>> >
>> >
>> > But that did not make a difference. Please help.
>> >
>>
>> Does /etc/mysql exist on the client machine?
>>
>> --
>> Jacob Helwig
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" group.
> To post to this group, send email to puppet-users@googlegroups.com.
> To unsubscribe from this group, send email to
> puppet-users+unsubscribe@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/puppet-users?hl=en.
>
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to
puppet-users+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.
Hello Nathan,
I tried that:
here is mysql-server.pp
-----------------------------------
class mysql-server {
package { "mysql-server": ensure => installed }
package { "mysql-client": ensure => installed }
service { "mysql":
enable => true,
require => Package["mysql-server"],
}
file { "/etc/mysql":
ensure => directory,
mode => 0755,
owner => root,
group => root,
}
file { "/etc/mysql/my.cnf":
source => "puppet:///modules/mysql-server/my.cnf",
owner => "mysql", group => "mysql",
mode => 644,
notify => Service["mysql"],
require => File["/etc/mysql"]
}
exec { "set-mysql-password":
path => ["/bin", "/usr/bin"],
command => "mysqladmin -uroot password secret",
}
exec { "set-nagios-password":
path => ["/bin", "/usr/bin"],
command => "/usr/bin/mysql -u root -e \"CREATE USER
''nagios''@''%''
IDENTIFIED BY ''secret'';\"",
}
}
------------------------------------
Here is is the output on the client:
-------------------------------------------
root@pclient:~# puppetd --no-daemonize --verbose
notice: Starting Puppet client version 2.7.5
info: Caching catalog for pclient.local.net
info: Applying configuration version ''1318457031''
notice: /Stage[main]/Mysql-server/File[/etc/mysql]/ensure: created
err: /Stage[main]/Mysql-server/File[/etc/mysql/my.cnf]/ensure: change from
absent to file failed: Could not set ''file on ensure: Could not find
user
mysql at /etc/puppet/modules/mysql-server/manifests/init.pp:23
notice: /Stage[main]/Mysql-server/Package[mysql-client]/ensure: ensure
changed ''purged'' to ''present''
notice: /Stage[main]/Mysql-server/Package[mysql-server]/ensure: ensure
changed ''purged'' to ''present''
notice: /Stage[main]/Mysql-server/Exec[set-nagios-password]/returns:
executed successfully
info: FileBucket adding {md5}1090e28a70ebaae872c2ec78894f49eb
info: /Stage[main]/Sudo/File[/etc/sudoers]: Filebucketed /etc/sudoers to
main with sum 1090e28a70ebaae872c2ec78894f49eb
notice: /Stage[main]/Sudo/File[/etc/sudoers]/content: content changed
''{md5}1090e28a70ebaae872c2ec78894f49eb'' to
''{md5}36bd2385741a3f03c08b7b6729ae8df5''
notice: /Stage[main]/Mysql-server/Exec[set-mysql-password]/returns: executed
successfully
notice: /Stage[main]/Mysql-server/Service[mysql]: Dependency
File[/etc/mysql/my.cnf] has failures: true
warning: /Stage[main]/Mysql-server/Service[mysql]: Skipping because of
failed dependencies
info: Creating state file /var/lib/puppet/state/state.yaml
notice: Finished catalog run in 28.63 seconds
------------
Note that mysql does run and i am able to log into it, but my.cnf does not
get imported....
On Wed, Oct 12, 2011 at 5:55 PM, Nathan Clemons
<nathan@livemocha.com>wrote:
> Try:
>
> file { "/etc/mysql":
> ensure => directory,
> mode => 0755,
> owner => root,
> group => root,
> }
>
> file { "/etc/mysql/my.cnf":
> source => "puppet:///modules/mysql-server/my.cnf",
> owner => "mysql", group => "mysql",
> mode => 644,
> notify => Service["mysql"],
> require => File["/etc/mysql"]
> }
>
> --
> Nathan Clemons
> http://www.livemocha.com
> The worlds largest online language learning community
>
>
>
> On Wed, Oct 12, 2011 at 2:49 PM, olympus stance
<olympus.stance@gmail.com>wrote:
>
>> Hi Jacob,
>>
>> My init.pp file is a symbolic link to the mysql-server.pp in the
classes
>> directory. It looks like this:
>>
>> -------
>> class mysql-server {
>>
>> package { "mysql-server": ensure => installed }
>> package { "mysql-client": ensure => installed }
>> service { "mysql":
>> enable => false,
>> require => Package["mysql-server"],
>>
>> }
>>
>> file { "/etc/mysql/my.cnf":
>> source => "puppet:///modules/mysql-server/my.cnf",
>> owner => "mysql", group => "mysql",
>> mode => 644,
>> notify => Service["mysql"],
>> }
>>
>>
>>
>> exec { "run-mysqld":
>> path => ["/bin", "/usr/sbin"],
>> command => "/usr/sbin/mysqld &",
>> }
>>
>> exec { "set-mysql-password":
>> path => ["/bin", "/usr/bin"],
>> command => "mysqladmin -uroot password secret",
>> }
>>
>>
>> exec { "set-nagios-password":
>> path => ["/bin", "/usr/bin"],
>> command => "/usr/bin/mysql -u root -e \"CREATE USER
''nagios''@''%''
>> IDENTIFIED BY ''secret'';\"",
>> }
>>
>>
>> }
>> ---------------------------
>>
>>
>> It looks like it does indeed try to create the my.cnf file before mysql
>> gets installed. How can i rectify that
>>
>> Thanks!!
>>
>>
>> On Wed, Oct 12, 2011 at 5:37 PM, Jacob Helwig
<jacob@puppetlabs.com>wrote:
>>
>>> On Wed, 12 Oct 2011 14:33:47 -0700, John Bower wrote:
>>> >
>>> > Hello,
>>> >
>>> > I''m trying to share a file between the client and the
server.
>>> >
>>> > On the server the file is located at:
/etc/puppet/modules/mysql-server/
>>> > files/my.cnf
>>> >
>>> > the code that references to this file is as follows:
>>> >
>>> > file { "/etc/mysql/my.cnf":
>>> > source =>
"puppet:///modules/mysql-server/my.cnf",
>>> > owner => "mysql", group =>
"mysql",
>>> > mode => 644,
>>> > notify => Service["mysql"],
>>> > }
>>> >
>>> > Essentially, I want the client to store the my.cnf file to
/etc/mysq/
>>> > my.cnf
>>> >
>>> > However i keep getting this error:
>>> > err: /Stage[main]/Mysql-server/File[/etc/mysql/my.cnf]/ensure:
change
>>> > from absent to file failed: Could not set ''file on
ensure: No such
>>> > file or directory - /etc/mysql/my.cnf.puppettmp_9888 at
/etc/puppet/
>>> > modules/mysql-server/manifests/init.pp:15
>>> >
>>> >
>>> >
>>> > i tried setting source =>
"puppet:///modules/mysql-server/files/
>>> > my.cnf",
>>> >
>>> >
>>> > But that did not make a difference. Please help.
>>> >
>>>
>>> Does /etc/mysql exist on the client machine?
>>>
>>> --
>>> Jacob Helwig
>>>
>>
>> --
>> You received this message because you are subscribed to the Google
Groups
>> "Puppet Users" group.
>> To post to this group, send email to puppet-users@googlegroups.com.
>> To unsubscribe from this group, send email to
>> puppet-users+unsubscribe@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/puppet-users?hl=en.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" group.
> To post to this group, send email to puppet-users@googlegroups.com.
> To unsubscribe from this group, send email to
> puppet-users+unsubscribe@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/puppet-users?hl=en.
>
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to
puppet-users+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.
IIRC the mysql user gets created by the mysql rpm, so your file will have to require Package[''mysql-server''] and possibly mysql-client as well. On Wed, Oct 12, 2011 at 3:09 PM, olympus stance <olympus.stance@gmail.com>wrote:> Hello Nathan, > > I tried that: > here is mysql-server.pp > ----------------------------------- > > class mysql-server { > > package { "mysql-server": ensure => installed } > package { "mysql-client": ensure => installed } > service { "mysql": > enable => true, > > require => Package["mysql-server"], > } > > file { "/etc/mysql": > ensure => directory, > mode => 0755, > owner => root, > group => root, > } > > file { "/etc/mysql/my.cnf": > source => "puppet:///modules/mysql-server/my.cnf", > owner => "mysql", group => "mysql", > mode => 644, > notify => Service["mysql"], > require => File["/etc/mysql"] > } > > > exec { "set-mysql-password": > path => ["/bin", "/usr/bin"], > command => "mysqladmin -uroot password secret", > } > > > exec { "set-nagios-password": > path => ["/bin", "/usr/bin"], > command => "/usr/bin/mysql -u root -e \"CREATE USER ''nagios''@''%'' > IDENTIFIED BY ''secret'';\"", > } > > > } > ------------------------------------ > > > > Here is is the output on the client: > ------------------------------------------- > root@pclient:~# puppetd --no-daemonize --verbose > notice: Starting Puppet client version 2.7.5 > info: Caching catalog for pclient.local.net > info: Applying configuration version ''1318457031'' > notice: /Stage[main]/Mysql-server/File[/etc/mysql]/ensure: created > err: /Stage[main]/Mysql-server/File[/etc/mysql/my.cnf]/ensure: change from > absent to file failed: Could not set ''file on ensure: Could not find user > mysql at /etc/puppet/modules/mysql-server/manifests/init.pp:23 > notice: /Stage[main]/Mysql-server/Package[mysql-client]/ensure: ensure > changed ''purged'' to ''present'' > notice: /Stage[main]/Mysql-server/Package[mysql-server]/ensure: ensure > changed ''purged'' to ''present'' > notice: /Stage[main]/Mysql-server/Exec[set-nagios-password]/returns: > executed successfully > info: FileBucket adding {md5}1090e28a70ebaae872c2ec78894f49eb > info: /Stage[main]/Sudo/File[/etc/sudoers]: Filebucketed /etc/sudoers to > main with sum 1090e28a70ebaae872c2ec78894f49eb > notice: /Stage[main]/Sudo/File[/etc/sudoers]/content: content changed > ''{md5}1090e28a70ebaae872c2ec78894f49eb'' to > ''{md5}36bd2385741a3f03c08b7b6729ae8df5'' > notice: /Stage[main]/Mysql-server/Exec[set-mysql-password]/returns: > executed successfully > notice: /Stage[main]/Mysql-server/Service[mysql]: Dependency > File[/etc/mysql/my.cnf] has failures: true > warning: /Stage[main]/Mysql-server/Service[mysql]: Skipping because of > failed dependencies > info: Creating state file /var/lib/puppet/state/state.yaml > notice: Finished catalog run in 28.63 seconds > ------------ > > > Note that mysql does run and i am able to log into it, but my.cnf does not > get imported.... > > > > > > On Wed, Oct 12, 2011 at 5:55 PM, Nathan Clemons <nathan@livemocha.com>wrote: > >> Try: >> >> file { "/etc/mysql": >> ensure => directory, >> mode => 0755, >> owner => root, >> group => root, >> } >> >> file { "/etc/mysql/my.cnf": >> source => "puppet:///modules/mysql-server/my.cnf", >> owner => "mysql", group => "mysql", >> mode => 644, >> notify => Service["mysql"], >> require => File["/etc/mysql"] >> } >> >> -- >> Nathan Clemons >> http://www.livemocha.com >> The worlds largest online language learning community >> >> >> >> On Wed, Oct 12, 2011 at 2:49 PM, olympus stance <olympus.stance@gmail.com >> > wrote: >> >>> Hi Jacob, >>> >>> My init.pp file is a symbolic link to the mysql-server.pp in the classes >>> directory. It looks like this: >>> >>> ------- >>> class mysql-server { >>> >>> package { "mysql-server": ensure => installed } >>> package { "mysql-client": ensure => installed } >>> service { "mysql": >>> enable => false, >>> require => Package["mysql-server"], >>> >>> } >>> >>> file { "/etc/mysql/my.cnf": >>> source => "puppet:///modules/mysql-server/my.cnf", >>> owner => "mysql", group => "mysql", >>> mode => 644, >>> notify => Service["mysql"], >>> } >>> >>> >>> >>> exec { "run-mysqld": >>> path => ["/bin", "/usr/sbin"], >>> command => "/usr/sbin/mysqld &", >>> } >>> >>> exec { "set-mysql-password": >>> path => ["/bin", "/usr/bin"], >>> command => "mysqladmin -uroot password secret", >>> } >>> >>> >>> exec { "set-nagios-password": >>> path => ["/bin", "/usr/bin"], >>> command => "/usr/bin/mysql -u root -e \"CREATE USER ''nagios''@''%'' >>> IDENTIFIED BY ''secret'';\"", >>> } >>> >>> >>> } >>> --------------------------- >>> >>> >>> It looks like it does indeed try to create the my.cnf file before mysql >>> gets installed. How can i rectify that >>> >>> Thanks!! >>> >>> >>> On Wed, Oct 12, 2011 at 5:37 PM, Jacob Helwig <jacob@puppetlabs.com>wrote: >>> >>>> On Wed, 12 Oct 2011 14:33:47 -0700, John Bower wrote: >>>> > >>>> > Hello, >>>> > >>>> > I''m trying to share a file between the client and the server. >>>> > >>>> > On the server the file is located at: >>>> /etc/puppet/modules/mysql-server/ >>>> > files/my.cnf >>>> > >>>> > the code that references to this file is as follows: >>>> > >>>> > file { "/etc/mysql/my.cnf": >>>> > source => "puppet:///modules/mysql-server/my.cnf", >>>> > owner => "mysql", group => "mysql", >>>> > mode => 644, >>>> > notify => Service["mysql"], >>>> > } >>>> > >>>> > Essentially, I want the client to store the my.cnf file to /etc/mysq/ >>>> > my.cnf >>>> > >>>> > However i keep getting this error: >>>> > err: /Stage[main]/Mysql-server/File[/etc/mysql/my.cnf]/ensure: change >>>> > from absent to file failed: Could not set ''file on ensure: No such >>>> > file or directory - /etc/mysql/my.cnf.puppettmp_9888 at /etc/puppet/ >>>> > modules/mysql-server/manifests/init.pp:15 >>>> > >>>> > >>>> > >>>> > i tried setting source => "puppet:///modules/mysql-server/files/ >>>> > my.cnf", >>>> > >>>> > >>>> > But that did not make a difference. Please help. >>>> > >>>> >>>> Does /etc/mysql exist on the client machine? >>>> >>>> -- >>>> Jacob Helwig >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Puppet Users" group. >>> To post to this group, send email to puppet-users@googlegroups.com. >>> To unsubscribe from this group, send email to >>> puppet-users+unsubscribe@googlegroups.com. >>> For more options, visit this group at >>> http://groups.google.com/group/puppet-users?hl=en. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Puppet Users" group. >> To post to this group, send email to puppet-users@googlegroups.com. >> To unsubscribe from this group, send email to >> puppet-users+unsubscribe@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/puppet-users?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Users" group. > To post to this group, send email to puppet-users@googlegroups.com. > To unsubscribe from this group, send email to > puppet-users+unsubscribe@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/puppet-users?hl=en. >-- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Thank you Aaron you solved my problem. But also thanks to Nathan and Jacob for pointing me in the right direction. Thanks again :D On Wed, Oct 12, 2011 at 6:16 PM, Aaron Grewell <aaron.grewell@gmail.com>wrote:> IIRC the mysql user gets created by the mysql rpm, so your file will have > to require Package[''mysql-server''] and possibly mysql-client as well. > > > On Wed, Oct 12, 2011 at 3:09 PM, olympus stance <olympus.stance@gmail.com>wrote: > >> Hello Nathan, >> >> I tried that: >> here is mysql-server.pp >> ----------------------------------- >> >> class mysql-server { >> >> package { "mysql-server": ensure => installed } >> package { "mysql-client": ensure => installed } >> service { "mysql": >> enable => true, >> >> require => Package["mysql-server"], >> } >> >> file { "/etc/mysql": >> ensure => directory, >> mode => 0755, >> owner => root, >> group => root, >> } >> >> file { "/etc/mysql/my.cnf": >> source => "puppet:///modules/mysql-server/my.cnf", >> owner => "mysql", group => "mysql", >> mode => 644, >> notify => Service["mysql"], >> require => File["/etc/mysql"] >> } >> >> >> exec { "set-mysql-password": >> path => ["/bin", "/usr/bin"], >> command => "mysqladmin -uroot password secret", >> } >> >> >> exec { "set-nagios-password": >> path => ["/bin", "/usr/bin"], >> command => "/usr/bin/mysql -u root -e \"CREATE USER ''nagios''@''%'' >> IDENTIFIED BY ''secret'';\"", >> } >> >> >> } >> ------------------------------------ >> >> >> >> Here is is the output on the client: >> ------------------------------------------- >> root@pclient:~# puppetd --no-daemonize --verbose >> notice: Starting Puppet client version 2.7.5 >> info: Caching catalog for pclient.local.net >> info: Applying configuration version ''1318457031'' >> notice: /Stage[main]/Mysql-server/File[/etc/mysql]/ensure: created >> err: /Stage[main]/Mysql-server/File[/etc/mysql/my.cnf]/ensure: change from >> absent to file failed: Could not set ''file on ensure: Could not find user >> mysql at /etc/puppet/modules/mysql-server/manifests/init.pp:23 >> notice: /Stage[main]/Mysql-server/Package[mysql-client]/ensure: ensure >> changed ''purged'' to ''present'' >> notice: /Stage[main]/Mysql-server/Package[mysql-server]/ensure: ensure >> changed ''purged'' to ''present'' >> notice: /Stage[main]/Mysql-server/Exec[set-nagios-password]/returns: >> executed successfully >> info: FileBucket adding {md5}1090e28a70ebaae872c2ec78894f49eb >> info: /Stage[main]/Sudo/File[/etc/sudoers]: Filebucketed /etc/sudoers to >> main with sum 1090e28a70ebaae872c2ec78894f49eb >> notice: /Stage[main]/Sudo/File[/etc/sudoers]/content: content changed >> ''{md5}1090e28a70ebaae872c2ec78894f49eb'' to >> ''{md5}36bd2385741a3f03c08b7b6729ae8df5'' >> notice: /Stage[main]/Mysql-server/Exec[set-mysql-password]/returns: >> executed successfully >> notice: /Stage[main]/Mysql-server/Service[mysql]: Dependency >> File[/etc/mysql/my.cnf] has failures: true >> warning: /Stage[main]/Mysql-server/Service[mysql]: Skipping because of >> failed dependencies >> info: Creating state file /var/lib/puppet/state/state.yaml >> notice: Finished catalog run in 28.63 seconds >> ------------ >> >> >> Note that mysql does run and i am able to log into it, but my.cnf does not >> get imported.... >> >> >> >> >> >> On Wed, Oct 12, 2011 at 5:55 PM, Nathan Clemons <nathan@livemocha.com>wrote: >> >>> Try: >>> >>> file { "/etc/mysql": >>> ensure => directory, >>> mode => 0755, >>> owner => root, >>> group => root, >>> } >>> >>> file { "/etc/mysql/my.cnf": >>> source => "puppet:///modules/mysql-server/my.cnf", >>> owner => "mysql", group => "mysql", >>> mode => 644, >>> notify => Service["mysql"], >>> require => File["/etc/mysql"] >>> } >>> >>> -- >>> Nathan Clemons >>> http://www.livemocha.com >>> The worlds largest online language learning community >>> >>> >>> >>> On Wed, Oct 12, 2011 at 2:49 PM, olympus stance < >>> olympus.stance@gmail.com> wrote: >>> >>>> Hi Jacob, >>>> >>>> My init.pp file is a symbolic link to the mysql-server.pp in the classes >>>> directory. It looks like this: >>>> >>>> ------- >>>> class mysql-server { >>>> >>>> package { "mysql-server": ensure => installed } >>>> package { "mysql-client": ensure => installed } >>>> service { "mysql": >>>> enable => false, >>>> require => Package["mysql-server"], >>>> >>>> } >>>> >>>> file { "/etc/mysql/my.cnf": >>>> source => "puppet:///modules/mysql-server/my.cnf", >>>> owner => "mysql", group => "mysql", >>>> mode => 644, >>>> notify => Service["mysql"], >>>> } >>>> >>>> >>>> >>>> exec { "run-mysqld": >>>> path => ["/bin", "/usr/sbin"], >>>> command => "/usr/sbin/mysqld &", >>>> } >>>> >>>> exec { "set-mysql-password": >>>> path => ["/bin", "/usr/bin"], >>>> command => "mysqladmin -uroot password secret", >>>> } >>>> >>>> >>>> exec { "set-nagios-password": >>>> path => ["/bin", "/usr/bin"], >>>> command => "/usr/bin/mysql -u root -e \"CREATE USER ''nagios''@''%'' >>>> IDENTIFIED BY ''secret'';\"", >>>> } >>>> >>>> >>>> } >>>> --------------------------- >>>> >>>> >>>> It looks like it does indeed try to create the my.cnf file before mysql >>>> gets installed. How can i rectify that >>>> >>>> Thanks!! >>>> >>>> >>>> On Wed, Oct 12, 2011 at 5:37 PM, Jacob Helwig <jacob@puppetlabs.com>wrote: >>>> >>>>> On Wed, 12 Oct 2011 14:33:47 -0700, John Bower wrote: >>>>> > >>>>> > Hello, >>>>> > >>>>> > I''m trying to share a file between the client and the server. >>>>> > >>>>> > On the server the file is located at: >>>>> /etc/puppet/modules/mysql-server/ >>>>> > files/my.cnf >>>>> > >>>>> > the code that references to this file is as follows: >>>>> > >>>>> > file { "/etc/mysql/my.cnf": >>>>> > source => "puppet:///modules/mysql-server/my.cnf", >>>>> > owner => "mysql", group => "mysql", >>>>> > mode => 644, >>>>> > notify => Service["mysql"], >>>>> > } >>>>> > >>>>> > Essentially, I want the client to store the my.cnf file to /etc/mysq/ >>>>> > my.cnf >>>>> > >>>>> > However i keep getting this error: >>>>> > err: /Stage[main]/Mysql-server/File[/etc/mysql/my.cnf]/ensure: change >>>>> > from absent to file failed: Could not set ''file on ensure: No such >>>>> > file or directory - /etc/mysql/my.cnf.puppettmp_9888 at /etc/puppet/ >>>>> > modules/mysql-server/manifests/init.pp:15 >>>>> > >>>>> > >>>>> > >>>>> > i tried setting source => "puppet:///modules/mysql-server/files/ >>>>> > my.cnf", >>>>> > >>>>> > >>>>> > But that did not make a difference. Please help. >>>>> > >>>>> >>>>> Does /etc/mysql exist on the client machine? >>>>> >>>>> -- >>>>> Jacob Helwig >>>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Puppet Users" group. >>>> To post to this group, send email to puppet-users@googlegroups.com. >>>> To unsubscribe from this group, send email to >>>> puppet-users+unsubscribe@googlegroups.com. >>>> For more options, visit this group at >>>> http://groups.google.com/group/puppet-users?hl=en. >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Puppet Users" group. >>> To post to this group, send email to puppet-users@googlegroups.com. >>> To unsubscribe from this group, send email to >>> puppet-users+unsubscribe@googlegroups.com. >>> For more options, visit this group at >>> http://groups.google.com/group/puppet-users?hl=en. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Puppet Users" group. >> To post to this group, send email to puppet-users@googlegroups.com. >> To unsubscribe from this group, send email to >> puppet-users+unsubscribe@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/puppet-users?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Users" group. > To post to this group, send email to puppet-users@googlegroups.com. > To unsubscribe from this group, send email to > puppet-users+unsubscribe@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/puppet-users?hl=en. >-- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
On Wed, 12 Oct 2011 17:49:20 -0400, olympus stance wrote:> > Hi Jacob, > > My init.pp file is a symbolic link to the mysql-server.pp in the classes > directory. It looks like this: > > ------- > class mysql-server { > > package { "mysql-server": ensure => installed } > package { "mysql-client": ensure => installed } > service { "mysql": > enable => false, > require => Package["mysql-server"], > } > > file { "/etc/mysql/my.cnf": > source => "puppet:///modules/mysql-server/my.cnf", > owner => "mysql", group => "mysql", > mode => 644, > notify => Service["mysql"], > } > > > > exec { "run-mysqld": > path => ["/bin", "/usr/sbin"], > command => "/usr/sbin/mysqld &", > } > > exec { "set-mysql-password": > path => ["/bin", "/usr/bin"], > command => "mysqladmin -uroot password secret", > } > > > exec { "set-nagios-password": > path => ["/bin", "/usr/bin"], > command => "/usr/bin/mysql -u root -e \"CREATE USER ''nagios''@''%'' > IDENTIFIED BY ''secret'';\"", > } > > > } > --------------------------- > > > It looks like it does indeed try to create the my.cnf file before mysql gets > installed. How can i rectify that > > Thanks!! >You''ll need to add a ''require => ...'' to the /etc/mysql/my.cnf file resource. Either to another file resource that creates /etc/mysql, or to the mysql-server package resource. File resources don''t automatically create the parent directories of the things they manage. -- Jacob Helwig