Saltstack

一.Saltstack

1.Saltstack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能;

2.基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinja2、python-msgpack和PyYAML等)构建;

3.特点:

部署简单、方便;

支持大部分UNIX/Linux及Windows环境;

主从集中化管理;

配置简单、功能强大、扩展性强;

主控端(master)和被控制端(minion)基于证书认证,安全可靠;

支持API及自定义模块,可通过Python轻松扩展;


二.Saltstack安装

1.安装EPEL

RHEL(CentOS)5版本:rpm -Uvh 下载地址:http://mirror.pnl.gov/epel/5/i386/epel-release-5-4.noarch.rpm

RHEL(CentOS)6版本:rpm -Uvh 下载地址:http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm


2.安装Saltstack

1)服务端(主控端)安装:

yum install salt-master -y

chkconfig salt-master on

service salt-master start


2)客户端(被控端)安装:

yum install salt-minion -y

chkconfig salt-minion on

service salt-minion start


3)防火墙设置:

iptables -I INPUT -m state --state new -m tcp -p tcp --dport 4505 -j ACCEPT

iptables -I INPUT -m state --state new -m tcp -p tcp --dport 4506 -j ACCEPT


三.Saltstack配置

1.master主控端配置

1)更新主控端关键项配置:

/etc/salt/master:


#绑定master通信IP

interface: 192.168.1.20 

#自动认证,避免手动运行salt-key来确认证书信任

auto_accept:True 

#指定Saltstack文件根目录位置

file_roots:

base:

-  /srv/salt


2)重启Saltstack salt-master服务使新配置生效:service salt-master restart


2.miniion被控端配置

1)更新被控端关键项配置:

/etc/salt/minion:


#指定master主机IP地址

master:192.168.1.20

#修改被控端主机识别ID,建议使用操作系统主机名来配置

id: my-host


2)重启Saltstack salt-minion服务使新配置生效:service salt-minion restart


3.校验安装结果,通过test模块的ping方法

salt ‘my-host’ test.ping


4.注意:当master的/etc/salt/master没有配置auto_accept:True时,需要通过salt-key命令来进行证书认证:

salt-key -L:显示已经或未认证的被控端id,Accepted Keys为已认证清单,Unaccepted Keys为未认证清单;

salt-key -D:删除所有认证主机id证书;

salt-key -d id:删除单个id证书;

salt-key -A:接受所有id证书请求;

salt-key -a id:接受单个id证书请求;


四.Saltstack远程执行命令

1.命令格式:salt  '<操作目标>'  '<方法>'  '[参数]'


2.针对操作目标的参数:

-E,--pcre:通过正则表达式进行匹配,如salt -E ‘^my-host*’ test.ping;

-L,--list:以主机id名列表的形式进行过滤,如salt -L 'myhost1,myhost2' test.ping;

-G,--grain:根据被控主机的grains信息进行匹配过滤,格式为'<grain value>:<glob expression>';

-I,--pillar:根据被控主机的pillar信息进行匹配过滤,格式为'对象名称:对象值';

-N,--nodegroup:根据主控端master配置文件中的分组名称进行过滤;

-C,--compound:根据条件not、and、or去匹配不同规则的主机信息;

-S,--ipcidr:根据被控主机的IP地址或IP子网进行匹配;


五.Saltstack常用模块及API

1.Archive模块:

1)功能:实现系统层面的压缩包调用,支持gunzip、gzip、rar、tar、unrar、unzip等;

2)实例:

采用gunzip解压包:salt '*' archive.gunzip /tmp/sourcefile.txt.gz

采用gzip压缩包:salt '*' archive.gzip /tmp/sourcefile.txt

3)API调用:client.cmd('*', 'archive.gunzip', ['/PATH/file'])


2.cmd模块:

1)功能:实现远程的命令行调用执行(默认具有root权限;

2)实例:salt '*' cmd.run "free -m"

3)API调用:client.cmd('*','cmd.run',['command'])


3.cp模块:

1)功能:实现远程文件、目录的复制,以及下载URL文件等操作;

2)实例:

将被控主机的/etc/hosts文件复制到被控主机本地的salt cache目录(/var/cache/salt/minion/localfiles/):salt '*' cp.cache_local_file /etc/hosts

将主服务器file_roots指定位置下的目录复制到被控主机:salt '*' cp.get_dir salt://path/to/dir/ /minion/dest

将主服务器file_roots指定位置下的文件复制到被控主机:salt '*' cp.get_dir salt://path/to/file /minion/dest

下载URL内容到被控主机指定位置:salt '*' cp.get_url http:/www.saltshdot.org /tmp/index.html

3)API调用:client.cmd('*','cp.get_file',['salt://path/to/file ', '/minion/dest'])


4.cron模块:

1)功能:实现被控机的crontab操作:

2)实例:

查看指定被控主机的crontab操作:salt 'my-host1' cron.raw_cron root

为指定的被控主机的root用户添加定时任务:salt 'my-host1' cron.set_job root '*' '*' '*' '*' 1 /usr/local/script.sh

删除指定被控主机的root用户的定时任务:salt 'my-host1' cron.rm_job root /usr/local/script.sh

3)API调用:client.cmd('host','cron.set_job',['root', '*' '*' '*' '*' 1 /usr/local/script.sh])


5.dnsutil模块:

1)功能:实现被控主机通用DNS相关操作;

2)实例:

添加指定被控主机hosts的主机配置项:salt '*' dnsutil.hosts_append /etc/hosts 127.0.0.1 ad1.yuk.com,ad2.yuk.com

删除指定被控主机hosts的主机配置项:salt '*' dnsutil.hosts_remove /etc/hosts ad1.yuk.com

3)API调用:client.cmd('*','dnsutil.hosts_append',['/etc/hosts','127.0.0.1','domain1'])


6.file模块

1)功能:被控主机文件常见操作,包括文件读写、权限、查找、校验等;

2)实例:

修改所有被控主机/etc/passwd文件的属组和用户权限:salt '*' file.chown /etc/passwd root root

3)API调用:client.cmd('*','file.remove',['/tmp/file'])


7.其他模块:如iptables模块,network模块,pkg包管理模块,service服务模块,user(系统用户模块),group(系统组模块),paritition(系统分区模块),puppet(puppet管理模块),system(系统重启,关机模块),timezone(时区管理模块),nginx(Nginx管理模块),mount(文件系统挂载模块);


8.salt '*' sys.doc可以查看所有模块、功能及用法。


更多:http://docs.saltstack.com/ref/modules/all/index.html#all-salt-modules












  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值