saltstack远程执行

一、saltstack远程执行

  一、saltstack远程执行:目标-targeting

  详解见:https://www.cnblogs.com/phennry/p/5416408.html

  1、查看认证主机情况

   

  2、具体匹配
Globing :   '*',
正则:      指定-E参数,正则表达式匹配多个
List:      指定-L参数,salt -E 'web1-(prod|devel)' test.ping 
Grains:    指定-G参数,salt -G 'os:CentOS' test.ping
pillar:    指定-I参数,salt -I 'apache:httpd' pkg.install httpd
node groups: 指定-N参数,salt -N 'web-cluster' test.ping
base:
web-cluster:
- match:nodegroup
- webserver
混搭(compound)
batch size
   3、主机名命名规范

  redis-node01-redis03-idc04-soa.example.com

  • redis-node1:运行的服务是Redis,这个是第一个节点
  • redis03:说明这个Redis是redis集群编号03里面的节点
  • idc04:这台服务器运行在编号04的IDC机房中
  • soa:这个服务器是给SOA服务使用的
  • example.com这台服务器是example.com业务
  4、targeting
    1、与minion ID有关,需要使用minion ID
  • globbing(通配符)
  • regex(正则表达式)
  • list(列表)
    2、和minion ID无关,不涉及到minion ID
  • 子网/IP地址
  • grains
  • pillar
  • compound matchers(复合匹配)
  • Node groups(节点组)
  • Batching execution(批处理执行)

  二、saltstack远程执行:常用模块module

  官网模块链接地址:state modules

  1、network模块

  salt.modules.network

  2、service模块

  salt.modules.service

  根据不同的系统执行不同的操作

  https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.rh_service.html#module-salt.modules.rh_service解释

salt '*' service.get_all #列出系统中所有的服务
  3、state模块

  salt.modules.state

  4、cp模块

  salt.modules.cp

  使用salt-cp命令执行也可

# salt-cp '*' /etc/passwd /tmp/passwd_bak
ops-k8s-master01.local.com:
    ----------
    /tmp/passwd_bak:
        True
ops-k8s-master02.local.com:
    ----------
    /tmp/passwd_bak:
        True
ops-k8s-master03.local.com:
    ----------
    /tmp/passwd_bak:
        True
  5、cmd模块

  salt.states.cmd

  6、cron模块

  salt.states.cron

  7、pkg模块(安装完就没有返回值了)

  salt.states.pkg

  三、saltstack远程执行returners(minion返回,更改minion配置)

  返回到哪,需要安装相关的依赖包(返回支持写入目的地,详见上面文档)

  1、返回内容可以写入的位置

  详情见官方文档:Returners

 1 salt.returners.carbon_return
 2 salt.returners.cassandra_cql_return
 3 salt.returners.cassandra_return
 4 salt.returners.couchbase_return
 5 salt.returners.couchdb_return
 6 salt.returners.django_return
 7 salt.returners.elasticsearch_return
 8 salt.returners.etcd_return
 9 salt.returners.highstate_return module
10 salt.returners.hipchat_return
11 salt.returners.influxdb_return
12 salt.returners.kafka_return
13 salt.returners.librato_return
14 salt.returners.local
15 salt.returners.local_cache
16 salt.returners.mattermost_returner module
17 salt.returners.memcache_return
18 salt.returners.mongo_future_return
19 salt.returners.mongo_return
20 salt.returners.multi_returner
21 salt.returners.mysql
22 salt.returners.nagios_return
23 salt.returners.odbc
24 salt.returners.pgjsonb
25 salt.returners.postgres
26 salt.returners.postgres_local_cache
27 salt.returners.pushover_returner
28 salt.returners.rawfile_json
29 salt.returners.redis_return
30 salt.returners.sentry_return
31 salt.returners.slack_returner
32 salt.returners.sms_return
33 salt.returners.smtp_return
34 salt.returners.splunk module
35 salt.returners.sqlite3
36 salt.returners.syslog_return
37 salt.returners.telegram_return
38 salt.returners.xmpp_return
39 salt.returners.zabbix_return module
  2、返回写入MySQL

  salt.returners.mysql

    1、每个minion安装MySQL-python
salt '*' cmd.run 'yum install -y MySQL-python'
或使用
salt '*' pkg.install 'MySQL-python'
    2、在某台机器安装mariadb
yum install mariadb-server -y
systemctl start mariadb
systemctl enable mariadb

  创建数据库和表键上面的文档(下面是授权)

grant all on salt.* to salt@'10.0.0.%' identified by 'salt';
    3、更改minion配置,将返回写入MySQL数据库

  vim /etc/salt/minion (或者使用追加到这个文件中)

mysql.host: '10.0.0.10'
mysql.user: 'salt'
mysql.pass: 'salt'
mysql.db: 'salt'
mysql.port: 3306

  重启服务

systemctl restart salt-minion 

  测试 (-v会将jid输出,通过“salt-run jobs.lookup_jid id号” 可以调出job) cache默认是一天

#测试
salt '*' test.ping --return mysql -v


#查看MySQL里面的数据
MariaDB [salt]> select * from salt_returns\G
*************************** 1. row ***************************
       fun: test.ping
       jid: 20181122200842736499
    return: true
        id: ops-k8s-master02.local.com
   success: 1
  full_ret: {"fun_args": [], "jid": "20181122200842736499", "return": true, "retcode": 0, "success": true, "fun": "test.ping", "id": "ops-k8s-master02.local.com"}
alter_time: 2018-11-22 20:08:42
    4、更改master配置(将master的所有的操作写入MySQL)

  vim /etc/salt/master(或者使用追加到这个文件中)

master_job_cache: mysql
mysql.host: '10.0.0.10'
mysql.user: 'salt'
mysql.pass: 'salt'
mysql.db: 'salt'
mysql.port: 3306

  重启master

systemctl restart salt-master

  测试

salt '*' test.ping #不要加return了

  四、job管理

  salt.modules.saltutil

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值