设为首页 收藏本站
查看: 1564|回复: 0

[经验分享] centos 6上安装使用saltstack以及基础管理

[复制链接]

尚未签到

发表于 2018-8-1 11:26:58 | 显示全部楼层 |阅读模式
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 [salt.crypt ][ERROR   ] 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对单台执行命令:
  
[root@localhost ~]# 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
  
[root@localhost ~]#
  
按组批量执行命令:
  
[root@localhost srv]# salt -N group1 test.ping
  
152:
  True
  
121:
  True
  
[root@localhost srv]#
  
做法:
  
编辑/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这个命令来完成
  
[root@localhost ~]# salt-cp -N group1 testfile  /tmp/
  
{'121': {'/tmp/testfile': True}, '152': {'/tmp/testfile': True}}
  
成功下发
  
5.salt sls文件定制系统
  
方法:
  在配置文件中,我们定义的文件目录是在/srv/salt下,在/srv/salt下建立sls文件
  这里以nginx为实例
  [root@localhost salt]# cat nginx.sls
  nginx:
  pkg:
  - installed
  [root@localhost salt]#
  [root@localhost salt]# 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
  
[root@localhost salt]#
  
如果minion端没有安装nginx的话,那么salt会在id为152的client上安装nginx,并返回成功的提示。
  
注意,由于sls文件是遵从yaml模板和jinja2模板,编写的时候要注意格式,缩进和空格。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-544700-1-1.html 上篇帖子: SaltStack之target 下篇帖子: saltstack的rest接口salt-api开发使用指南
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表