SALTSTACK快速了解与简单实用
Posted MisterChen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SALTSTACK快速了解与简单实用相关的知识,希望对你有一定的参考价值。
salt是一个异构平台基础设置管理工具,使用轻量级的通讯器ZMQ,用Python写成的批量管理工具,完全开源,遵守Apache2协议,与Puppet,Chef功能类似,有一个强大的远程执行命令引擎,也有一个强大的配置管理系统,只需花费数分钟即可运行起来, 扩展性足以支撑管理上万台服务器,数秒钟即可完成数据传递. 经常被描述为 Func 加强版+Puppet 精简版;通常叫做Salt State System。
SaltStack 采用 C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过ZeroMQ消息队列通信
saltstack支持的操作系统
saltstack基础架构
saltstack安装部署
环境一台saltstack服务,两台客户端,使用centos6
安装epel源(服务端和客户端都需要安装)
#centos 5:
rpm -Uvh http://mirror.pnl.gov/epel/5/i386/epel-release-5-4.noarch.rpm
#centos6:
rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm
安装salt-master,服务端
yum -y install salt-master
安装salt-minion,客户端
yum -y install salt-minion
安装完毕之后,salt-master用默认配置即可
修改salt-minion配置文件
vi /etc/salt/minion
id:#给客户端取一个名字,默认是客户机的主机名,如图所示(注意空格)
启动服务
启动服务端和客户端
客户端:/etc/init.d/salt-minion start
服务端:/etc/init.d/salt-master start
常用命令
列出当前所有key
Salt-key -L
接受指定的key
Salt-key –a salt-minion01 -y
接受所有key
Salt-key –A -y
删除指定的key
Salt-key –d salt-minion01 -y
删除所有key
Salt-key –D -y
在服务端查看客户端,红色表示已经找到客户端,但是现在还没有加入到服务端
将客户端添加至允许操作
下面我进行一些常规批量操作
如果客户机salt使用的是默认ID,且客户端更换了主机名,如何重新加入master?
1.服务端先把无法访问的主机剔除掉。
2.然后在客户端删除一下两个文件,然后重新启动
rm –rf /etc/salt/minion_id
rm –rf /etc/salt/pki/
Salt如何查看帮助文档
在服务端执行
salt ‘salt-client01' sys.doc > salt.txt
然后查看文档
在官网查看使用帮助
https://docs.saltstack.com/en/latest/
批量分发文件和目录
新的master服务端配置并启用
将第一台服务端的PKI目录拷贝到本地指定目录,然后启动查看Return记录返回处理结果
客户端查看日志
常用模块命令
1.cp(实现远程文件,目录复制,以及下载URL文件等)
salt ‘*’ cp.get_dir salt://dir-test /root#复制目录
salt ‘*’ cp.get_file salt://file-test /root/file-test#复制文件
salt ‘*’ cp.get_url http://xxx.org/down/xxx.tar.gz /root/xxx.tar.gz #下载URL
2.cmd(实现远程命令调用执行)
salt ‘*’ cmd.run ‘netstat -natup’
salt ‘*’ cmd.exec_code python ‘import sys; print sys.version
3.cron(实现客户机crontab操作)
#增加计划任务
salt ‘*’ cron.set_job root ‘00’ ‘00’ ‘*’ ‘*’ ‘*’ ‘/usr/sbin/ntpdate 202.112.31.197 > /dev/null 2>&1‘
salt ‘*’ cron.rm_job root ‘/usr/sbin/ntpdate 202.112.31.197 > /dev/null 2>&1‘#删除计划任务
salt ‘*’ cron.raw_cron root #显示客户机计划任务列表
4.dnsutil(实现客户机DNS操作)
salt '*' dnsutil.hosts_append /etc/hosts 127.0.0.1 new.liketry.com
5.service(客户机程序管理)
salt ‘*’ service.status nginx
salt ‘*’ service.start nginx
salt ‘*’ service.stop nginx
salt ‘*’ service.restart nginx
salt ‘*’ service.reload nginx
States & YAML
Salt状态系统核心是sls,或者叫salt state文件。SLS表示系统将会是一个什么样的状态,而且是一种很简单的格式包含这些数据。经常也被叫做配置管理。
SLS文件内容实际只是一些词典、列表、字符串、数字。它使用的是YAML语法,YAML语法特点:
1.YAML使用一个固定的缩进风格表示数据层结构关系。需要每个缩进级别有两个空格组成,不能使用tab.
2.字典的keys在YAML中表现形式是一个以冒号结尾的字符串。Values的表现是冒号下面每一行,用空格隔开
3.想要表现列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一列表的一部分
下面我们批量安装Nginx
salt 'salt-client01' state.sls ini
自动更新nginx配置文件
以上是关于SALTSTACK快速了解与简单实用的主要内容,如果未能解决你的问题,请参考以下文章