Saltstack二次开发

  1. Saltstack简介
    Salt 是 一个配置管理系统,能够维护预定义状态的远程节点(比如,确保指定的报被安装,指定的服务在运行) 一个分布式远程执行系统,用来在远程节点(可以是单个节点,也可以是任意规则挑选出来的节点)上执行命令和查询数据 开发其的目的是为远程执行提供最好的解决方案,并使远程执行变得更好,更快,更简单 Saltstack(中国用户组 www.saltstack.cn )基于python开发,c/s架构,支持多平台,比puppet轻量,在远程执行命令时非常快捷,配置和使用比puppet容易,能实现puppet几乎所有的功能。
    Saltstack的优势: 有master端和minion端,执行的信息比较稳定,不容易丢失信息,或者出现失联主机的情况 有封装好的http-api,我们可以直接启动salt-api就可以通过http协议进行调用。不需要自己进行第二次的封装。基于centos6和centos7的差异,在两个不同的操作系统中安装saltstack也是不一样的。
  2. Saltstack的秘钥安装
    Master与Minion认证 minion在第一次启动时,会在/etc/salt/pki/minion/(该路径在/etc/salt/minion里面设置)下自动生成minion.pem(private key)和 minion.pub(public key),然后将 minion.pub发送给master。master在接收到minion的public key后,通过salt-key命令accept minion public key,这样在master的/etc/salt/pki/master/minions下的将会存放以minion id命名的 public key,然后master就能对minion发送指令了。 salt-key -L 或者salt-key 显示所有的key salt-key -D :删除所有认证主机id证书 salt-key -d keys_values -y salt-key -A:接收所有id证书请求 salt-key -a id :接受单个id证书请求。
  3. Saltstack远程执行机器
    1.-E, --pcre,通过正则表达式进行匹配: salt -E 'web(9|10)*' test.ping -t 1
    2. -L, --list, 主机id进行过滤: salt -L "*app*" cmd.run "df -h"
    3. -G, --grain, 根据被控主机的grains信息进行过滤 salt -G 'role:nginx' cmd.run "ls /export"
    4. -I, --pillar, 根据被控主机的pillar信息进行过滤 salt -I 'myname:xiang' test.ping -t 5
    5. -S, --ipcidr, 根据minion的ip地址进行匹配 salt -S 192.168.1.1 test.ping salt -S 192.168.1.0/24 test.ping salt -S 192.168.0.0/16 test.ping salt -S 192.0.0.0/8 test.ping
    6.检查客户端是否挂掉: salt-run manage.status |head salt-run manage.down
  4. Saltstack配置文件详解
    Saltstack占用两个端口4505和4506
    1. 确保master端的4505和4506端口开通
    2. Minion的key确实别master接受
    3. 通过test.ping 模块,双方都可以ping通
  5. Saltstack的几种模块介绍
    1.Runner 模块 在master端执行的 salt-run
    2.Module 模块 通过master同步到minion端, 在minion执行 salt-call saltutil.sync_modules salt-call saltutil.sync_all:包括:beacons: clouds: engines: grains: log_handlers: modules: output: proxymodules: renderers: returners: sdb: states: utils:
    3.Grins 模块 记录minion的属性key:value
    4.Pillar模块 记录所有minion通用的属性,然后同步到minion端 salt-call saltutil.refresh_pillar salt ‘*’ saltutil.refresh_pillar
    5.cmd模块 salt ‘*’ cmd.run “df -h”
    6. ping模块 salt ‘*’ test.ping –t 5
    7. cp 模块 file_roots: base: - /export/salt/root salt根目录:在master中file_roots定义的路径,salt://test.txt相当于/export/salt/root/test.txt salt 'wms5test1.app.172.17.23.176' cp.get_file salt://nscd.conf /tmp/xiang.txt
    8. cron模块: salt '*' cron.raw_cron root (查看定时任务) salt '*' cron.set_job root '*' '*' '*' '*' 1 /export/scripts/rm_log.sh salt '*' cron.rm_job root /export/scripts/rm_log.sh (写全没效果)
    9.dnsutil模块 salt '*' dnsutil.hosts_append /etc/hosts 127.0.0.1 xiang.com salt '*' dnsutil.hosts_remove /etc/hosts xiang.com
    10. file模块:
    salt '*' file.chown /etc/passwd root root
    salt '*' file.copy /path/to/src /path/to/dst
    salt '*' file.file_exists /etc/hosts
    salt '*' file.directory_exists /etc/
    salt '*' file.get_mod /etc/passwd
    salt '*' file.set_mod /etc/passwd 0644
    salt '*' file.mkdir /tmp/test
    salt '*' file.sed /export/servers/nginx/conf/nginx.conf 'debug' 'warn'
    salt '*' file.append /tmp/test.txt "welcome xiang"
    salt '*' file.remove /tmp/1.txt
    11.network模块:
    salt '*' network.dig www.qq.com
    salt '*' network.ping www.qq.com
    salt '*' network.ip_addrs
    12.pkg包管理模块:
    管理yum, apt-get等
    salt '*' pkg.install php
    salt '*' pkg.remove php
    salt '*' pkg.upgrade (升级所有的软件包)
    13.service模块
    salt '*' service.enable nginx
    salt '*' service.disable nginx
    salt '*' service.restart nginx
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值