博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
saltstack
阅读量:5094 次
发布时间:2019-06-13

本文共 4308 字,大约阅读时间需要 14 分钟。

1.安装

1.安装epel2.安装salt服务端:yum install salt-master -y客户端:yum install salt-minion -y3.配置vim /etc/salt/minion---------------------master:salt   //master的主机名,需要在hosts里面写上ipid:

2.master端命令

salt-key -L                  --列出所有的minion主机(包括已经接受公钥的和未接受的) -----------------------------------Accepted Keys:Denied Keys:Unaccepted Keys:server01.loserver02.loRejected Keys:
salt-key -a server01.lo            --添加新的minion主机公钥,-A是添加所有未添加的主机 -------------------------------------------The following keys are going to be accepted:Unaccepted Keys:server01.loProceed? [n/Y] yKey for minion server01.lo accepted
salt '*' test.ping                  --监测所有的minion主机 --------------------------------------------server01.lo:    Trueserver02.lo:    True
salt-key -d server03.lo            --删除minion主机

3.minion主机修改主机名:

修改完主机名之后需要以下操作:minion主机主机:1.删除/etc/salt目录下minion_id和pki/2.重启salt-minionmaster主机:1.删除原来的主机名:salt-key -d server03.lo2.重新扫描minion主机:salt-key -L  3.重新添加minion主机:salt-key -a -y4.测试:salt '*' test.ping

4.master主机迁移:

1.准备一台新的主机,安装好salt-master2.将旧master主机/etc/salt下pki目录scp至新主机/etc/salt下3.在旧主机上批量修改minion主机的hosts文件:salt '*' cmd.run "sed -i 's/175/172/' /etc/hosts"4.查看minion主机的hosts文件是否修改正确:salt '*' cmd.run 'grep salt /etc/hosts'5.重启minion主机的minion服务: salt '*' service.restart salt-minion6.启动新master主机的服务:/etc/init.d/salt-master start7.在新master主机上测试minion主机:salt '*' test.ping

5.常用模块:

cp模块(实现远程文件、目录的复制,以及下载URL文件等操作):cp的根目录是:/srv/saltsalt '*' cp.get_file salt://file1 /tmp/file1        --目标目录也要写上文件名salt '*' cp.get_dir salt://dir1 /tmp/            --直接写目录名字,无需加dir1salt '*' cp.get_url http://mirrors.aliyun.com/epel/6/x86_64/epel-release-6-8.noarch.rpm /tmp/epel-release-6-8.noarch.rpm  --目标目录也要写上文件名
cmd模块(实现远程的命令行调用执行):salt '*' cmd.run 'netstat -ntlp'
cron模块(实现被控主机的crontab操作):为指定的被控主机、root用户添加crontab信息salt '*' cron.set_job root '*/5' '*' '*' '*' '*' 'date >/dev/null 2>&1'salt '*' cron.raw_cron root     --查看cron

 删除指定的被控主机、root用户的crontab信息

  salt '*' cron.rm_job root 'date >/dev/null 2>&1'
  salt '*' cron.raw_cron root

dnsutil模块(实现被控主机通用DNS操作):为被控主机添加指定的hosts主机配置项salt '*' dnsutil.hosts_append /etc/hosts 192.168.100.110 www.aasd.com
file模块(被控主机文件常见操作,包括文件读写、权限、查找、校验等):salt '*' file.get_sum /etc/resolv.conf md5salt '*' file.stats /etc/resolv.conf
network模块(返回被控主机网络信息):salt '*' network.ip_addrssalt '*' network.interfaces
pkg包管理模块(被控主机程序包管理,如yum、apt-get等)salt '*' pkg.install nmapsalt '*' pkg.file_list nmap
service 服务模块(被控主机程序包服务管理:salt '*' service.enable crondsalt '*' service.disable crondsalt '*' service.status crondsalt '*' service.stop crondsalt '*' service.start crondsalt '*' service.restart crondsalt '*' service.reload crond

 6.主机分组:

对目标服务器分组有以下七种方式: G -- 针对 Grains 做单个匹配,例如:G@os:UbuntuE -- 针对 minion 针对正则表达式做匹配,例如:E@web\d+.(dev|qa|prod).locP -- 针对 Grains 做正则表达式匹配,例如:P@os:(RedHat|Fedora|CentOS)L -- 针对 minion 做列表匹配,例如:L@minion1.example.com,minion3.domain.com or bl*.domain.comI -- 针对 Pillar 做单个匹配,例如:I@pdata:foobarS -- 针对子网或是 IP 做匹配,例如:S@192.168.1.0/24 or S@192.168.1.100R -- 针对客户端范围做匹配,例如: R@%foo.bar
分组测试: vim /etc/salt/master nodegroups:  #  group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com and bl*.domain.com'  #  group2: 'G@os:Debian and foo.domain.com'     test1: 'E@server*'
[root@server05 salt]# salt -N test1 test.pingserver01.lo:    Trueserver02.lo:    True

7.文件同步系统

1.开启文件系统 vim /etc/salt/masterfile_roots:  base:    - /srv/salt  --此处指定基目录
[root@server05 salt]# cat top.sls base:  '*':    - test1  'server01.lo':    - test2
[root@server05 salt]# cat test1.sls /tmp/test1.sh:  file.managed:    - source: salt://test_dir1/test1.sh    - user: root    - group: root    - mode: 600[root@server05 salt]# cat test2.sls /tmp/test2.sh:  file.managed:    - source: salt://test_dir1/test2.sh    - user: root    - group: root    - mode: 600
salt '*' state.highstate  --执行所有的配置文件 salt '*' state.sls test2  --执行某个子配置文件,还可以指定主机,也可以用*表示所有主机

 8.分布式

思路:minion主机的salt地址指向代理主机,代理主机再指到(syndic_master地址)master,minion主机和master主机的联系要断开

#syndic_master: masterofmastersyndic_master: 192.168.100.175# This is the 'ret_port' of the MasterOfMaster:#syndic_master_port: 4506# PID file of the syndic daemon:#syndic_pidfile: /var/run/salt-syndic.pid# LOG file of the syndic daemon:#syndic_log_file: syndic.logsyndic_log_file: /var/log/salt/syndic.log

分布式还有诸多问题,有待研究

  

 

 

  

 

转载于:https://www.cnblogs.com/vijayfly/p/5543165.html

你可能感兴趣的文章
ArrayList对象声明& arrayList.size()
查看>>
并发编程 线程
查看>>
Mysql 解压安装
查看>>
Mysql
查看>>
前端html
查看>>
网络编程
查看>>
.Net Core项目发布到虚拟机(三)
查看>>
android 动画
查看>>
算法笔记_055:蓝桥杯练习 Tricky and Clever Password (Java)
查看>>
图解安卓-c++开发-通过java 调用c++ jni的使用
查看>>
最近在整appium自动化的事情,遇到一个虚拟键盘的问题,折腾了好几天解决了,给大家分享一下...
查看>>
Deep Learning 在中文分词和词性标注任务中的应用
查看>>
[JAVA SE] Java反射机制
查看>>
Altium Designer 输出 gerber 光绘文件的详细说明
查看>>
留个遗体
查看>>
IE6 png处理
查看>>
A股ROE连续3年超过15%的股票排名
查看>>
promise用法
查看>>
学习进度表
查看>>
机器学习相关数据库(转)
查看>>