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 <[email protected]>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
> <[email protected]>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 <[email protected]>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 [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> 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 [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> 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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.