珀耳塞福建 发表于 2018-8-1 11:26:58

centos 6上安装使用saltstack以及基础管理

centos 6.x安装并使用saltstack  
1.安装
  
环境包
  
yum -y install python-crypto m2crypto PyYAML python-mako python-setuptools Cython
  
安装EPEL源
  
wget -c http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
  
rpm -ivh epel-release-6-8.noarch.rpm
  
然后使用yum安装
  
yum -y install salt-master//master
  
yum -y install salt-minion//client
  
2.基本配置
  
master端:
  
interface: 0.0.0.0 //侦听地址
  
publish_port: 4505 //salt的消息发布系统
  
user: root//salt使用的用户
  
max_open_files: 100000 //salt最大文件打开数
  
worker_threads: 5   //salt启动时的线程数,如果master运行慢,增加线程数
  
ret_port: 4506//salt用来验证和任务处理的端口,即client连接master的端口
  
auto_accept: True //默认为false,这个是自动认证,不打开需要用salt-key -A 命令来进行手动认证
  
root_dir: / //家目录
  
pki_dir: /etc/salt/pki/master   //这个目录用来存放公钥
  
keep_jobs: 24   //任务被缓存的时间,以小时为单位
  
timeout: 5//默认超时时间
  
state_top: top.sls
  
file_roots:         //
  base:
  - /srv/salt
  
pillar_roots:
  base:
  - /src/pillar
  
log_file: /var/log/salt/master//日志位置
  
log_level: debug      //日志级别,默认为warning
  
minion端:
  
master: 192.168.1.1 //这个是salt master端的ip或者域名都可以
  
id:1    //标识,这台minion在salt master上的标识,可以随便使用,推荐使用这种方法将id写死。还有一种方法是使用hostname来进行标识。
  
master_port: 4506 //master上用来认证和任务返回的端口
  
user:root    //运行salt的用户
  
pidfile: /var/run/salt-minion.pid //pid文件
  
pki_dir: /etc/salt/pki/minion   //pki公钥目录
  
cachedir: /car/cache/salt/minion //缓存目录
  
log_file: /var/log/salt/minion //日志文件
  
log_level: debug //日志级别,默认为warning
  
3.启动
  
/etc/init.d/salt-master start
  
/etc/init.d/salt-minion start
  
启动完成后查看minion端的log
  
会发现错误:
  
2014-02-24 21:27:25,523 The Salt Master has cached the public key for this node, this salt minion will wait for 10 seconds before attempting to re-authenticate
  
这是由于auto_accept: True这个值设置为false,这个时候需要在master端执行salt-key -A 来验证
  
4。基本使用
  
salt 'id' cmd.run 'command'
  
id是在minion中设置的值,cmd.run是salt的方法,command是要执行的命令
  
salt对单台执行命令:
  
# salt '152' cmd.run 'uname -a'
  
152:
  Linux cs.test.com 2.6.32-358.el6.i686 #1 SMP Thu Feb 21 21:50:49 UTC 2013 i686 i686 i386 GNU/Linux
  
#
  
按组批量执行命令:
  
# salt -N group1 test.ping
  
152:
  True
  
121:
  True
  
#
  
做法:
  
编辑/etc/salt/master文件
  
找到nodegroups:取消掉注释
  
配置
  
group1: 'L@152,121'//这里 group1是标识符,152和121是client端的id标识符,L代表是有多个客户端。另外,注意缩进,group1和nodegroups不能并齐,客户端ID用,分隔
  
即:
  
nodegroups:
  group1: 'L@152,121'
  
如果要对所有客户端执行,直接使用salt '*' 即可
  
附:group2: 'G@os:debian'这个的意思是针对系统为debian的操作系统
  
执行命令可以为,salt -N group2 test.ping
  
或者用
  
salt -G 'os:centos' test.ping 来匹配系统为centos的机器执行test.ping测试
  
salt批量下发文件:
  
使用salt-cp这个命令来完成
  
# salt-cp -N group1 testfile/tmp/
  
{'121': {'/tmp/testfile': True}, '152': {'/tmp/testfile': True}}
  
成功下发
  
5.salt sls文件定制系统
  
方法:
  在配置文件中,我们定义的文件目录是在/srv/salt下,在/srv/salt下建立sls文件
  这里以nginx为实例
  # cat nginx.sls
  nginx:
  pkg:
  - installed
  #
  # salt '152' state.sls nginx
  
152:
  
----------
  State: - pkg
  Name:      nginx
  Function:installed
  Result:    True
  Comment:   The following packages were installed/updated: nginx.
  Changes:   nginx: { new : 1.4.5-1.el6.ngx
  
old :
  
}
  
Summary
  
------------
  
Succeeded: 1
  
Failed:    0
  
------------
  
Total:   1
  
#
  
如果minion端没有安装nginx的话,那么salt会在id为152的client上安装nginx,并返回成功的提示。
  
注意,由于sls文件是遵从yaml模板和jinja2模板,编写的时候要注意格式,缩进和空格。
页: [1]
查看完整版本: centos 6上安装使用saltstack以及基础管理