mysql服务器,使用puppet配置分分钟搞定,而不需要一台台去手动停止,非常方便
确认服务器端和客户端正常工作,开始编写module文件
[root@localhost etc]# cd /etc/puppet/modules/
新建puppet module目录结构
[root@localhost modules]# mkdir -p mysqld/{manifests,files,templates}
[root@localhost modules]# touch mysqld/manifests/init.pp
编写init.pp文件,启动mysqld服务,这里的linux服务需要支持以标准的service stop/start等格式
[root@localhost modules]# vi mysqld/manifests/init.pp
class mysqld::service
{
service { "mysqld":
ensure=>running,
}
}
class mysqld
{
include mysqld::service
}
编辑站点文件
[root@localhost manifests]# vi /etc/puppet/manifests/site.pp --表示c12,c13,c14节点都应用mysqld class
node 'c12', 'c13','c14'
{
include mysqld
}
保存退出,不需要重新启动puppet master
在客户端查看服务启动情况
[root@c12 modules]# ps -eaf | grep mysqld
root 12613 7125 0 12:36 pts/1 00:00:00 grep mysqld
稍过一段时间,具体取决于配置,发现mysqld服务已经启动了
[root@c12 modules]# ps -eaf | grep mysqld
root 14786 1 0 12:43 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/c12.pid
mysql 15009 14786 4 12:43 ? 00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/mysql/plugin --user=mysql --log-error=/usr/local/mysql/data/localhost.localdomain.err --pid-file=/usr/local/mysql/data/c12.pid
root 15046 7125 0 12:43 pts/1 00:00:00 grep mysqld
[root@c12 modules]#
如果我们需要关闭大量服务器上的mysql服务, 只要把ensure改为stopped就可以了
[root@localhost manifests]# vi init.pp
class mysqld::service
{
service { "mysqld":
ensure=>stopped,
}
}
class mysqld
{
include mysqld::service
}
整个过程十分方便,只需要在puppet服务器上配置即可.
同步文件 :
1.site.pip
node 'datacross3.l.loc', 'datacross4.l.loc'{
include httpd
file {
"/home/winson/test.txt":
source => "puppet://datacross2.l.loc/files/test.txt",
backup => ".bak_$uptime_seconds",
}
}
2. fileserver.conf
[files]
path /etc/puppet/files
allow *
同步文件:
1. cat site.pp
node 'datacross3.l.loc', 'datacross4.l.loc'{
include httpd
file {
"/home/winson/":
source => "puppet://datacross2.l.loc/files/",
#backup => ".bak_$uptime_seconds",
recurse => true,
purge => true,
force => true,
}
}
httpd模块 :
1.目录结构
[root@datacross2 puppet]# tree
.
├── auth.conf
├── environments
│ └── example_env
│ ├── manifests
│ ├── modules
│ └── README.environment
├── files
│ ├── test.log
│ └── test.txt
├── fileserver.conf
├── manifests
│ └── site.pp
├── modules
│ └── httpd
│ ├── files
│ │ ├── httpd.conf
│ │ └── index.html
│ ├── manifests
│ │ ├── config.pp
│ │ ├── init.pp
│ │ └── service.pp
│ └── templates
└── puppet.conf
2.config.pp
class httpd::config {
file { "/etc/httpd/conf/httpd.conf":
ensure => present,
source => "puppet:///modules/httpd/httpd.conf",
#实际路径在/etc/puppet/modules/httpd/files/httpd.conf
notify => Class["httpd::service"]
}
}
3.service.pp
class httpd::service {
service { "httpd":
ensure => running,
require => Class["httpd::config"]
}
file { "/var/www/html/index.html": #添加web主页
source => "puppet:///modules/httpd/index.html"
}
}
4. init.pp
class httpd {
include httpd::config,httpd::service
}