saltstack安装+基本命令
环境:
node1:172.16.1.60 OS:centos 7.3 master hostname:centos7u3-1
node2:172.16.1.61 OS:centos 7.3 minion hostname:centos7u3-2
准备工作:
在/etc/hosts文件中添加(如有DNS服务器,此操作可不用操作)
172.16.1.60 centos7u3-1
172.16.1.61 centos7u3-2
master 安装:
yum install salt-master salt-minion -y
配置:
[root@centos7u3-1 srv]# egrep -v '^#|^$' /etc/salt/master
auto_accept: True #打开自动注册
file_roots:
base:
- /srv/salt/
pillar_roots:
base:
- /srv/pillar
[root@centos7u3-1 srv]# egrep -v '^#|^$' /etc/salt/minion master: 172.16.1.60
启动服务:
systemctl start salt-master salt-minion
minion安装:
yum install salt-minion -y
[root@centos7u3-2 ~]# egrep -v '^#|^$' /etc/salt/minion master: 172.16.1.60
查看当前的salt key信息
salt-key -L
测试被控主机的连通性
salt '*' test.ping
远程命令执行测试
salt '*' cmd.run 'uptime'
根据被控主机的grains信息进行匹配过滤
salt -G 'os:Centos' test.ping
显示被控主机的操作系统类型
salt '*' grains.item os
远程代码执行测试
salt '*' cmd.exec_code python 'import sys; print sys.version'
常用模块介绍
(1)、cp模块(实现远程文件、目录的复制,以及下载URL文件等操作)
- 将主服务器file_roots指定位置下的目录复制到被控主机
salt '*' cp.get_dir salt://hellotest /data
- 将主服务器file_roots指定位置下的文件复制到被控主机
salt '*' cp.get_file salt://hellotest/rocketzhang /root/rocketzhang
- 下载指定URL内容到被控主机指定位置
salt '*' cp.get_url http://xxx.xyz.com/download/0/files.tgz /root/files.tgz
(2)、cmd模块(实现远程的命令行调用执行)
salt '*' cmd.run 'netstat -ntlp'
(3)、cron模块(实现被控主机的crontab操作)
为指定的被控主机、root用户添加crontab信息
salt '' cron.set_job root '/5' '' '' '' '' 'date >/dev/null 2>&1' salt '*' cron.raw_cron root
删除指定的被控主机、root用户的crontab信息
salt '' cron.rm_job root 'date >/dev/null 2>&1' salt '' cron.raw_cron root
(4)、dnsutil模块(实现被控主机通用DNS操作)
- 为被控主机添加指定的hosts主机配置项
salt '*' dnsutil.hosts_append /etc/hosts 127.0.0.1 rocketzhang.qq.com
(5)、file模块(被控主机文件常见操作,包括文件读写、权限、查找、校验等)
salt '' file.get_sum /etc/resolv.conf md5 salt '' file.stats /etc/resolv.conf
(6)、network模块(返回被控主机网络信息)
salt '' network.ip_addrs salt '' network.interfaces
(7)、pkg包管理模块(被控主机程序包管理,如yum、apt-get等)
salt '' pkg.install nmap salt '' pkg.file_list nmap
(8)、service 服务模块(被控主机程序包服务管理)
salt '' service.enable crond salt '' service.disable crond salt '' service.status crond salt '' service.stop crond salt '' service.start crond salt '' service.restart crond salt '*' service.reload crond
(9)、更多功能
更多的功能,比如:grains、pillar、states、modules、returner、runners、reactor等,还有如下高级命令的使用,以及模板配置的渲染、扩展模块的二次开发等,可以自己去深入学习哈。
**salt相关的管理命令:**
salt-run manage.up # 查看存活的minion
salt-run manage.down # 查看死掉的minion
salt-run manage.down removekeys=True # 查看down掉的minion,并将其删除
salt-run manage.status # 查看minion的相关状态
salt-run manage.versions # 查看salt的所有master和minion的版本信息
salt-run jobs.active # 查看哪些系统任务还在处理中
salt-run jobs.list_jobs # 显示所有的已完成或部分完成的任务信息
salt '*' saltutil.running # 查看运行的jobs ID
salt \* saltutil.kill_job 20151209034239907625 # kill掉进程ID
salt -d # 查看帮助文档
salt -d|grep service # 查看service相关模块命令
salt '*' sys.doc # 查看帮助文档
salt-key -L # 查询所有接收到的证书
salt-key -a <证书名> # 接收单个证书
salt-key -A # 接受所有证书
salt-key -d <证书名> # 删除单个证书
salt-key -D # 删除所有证书
salt '*' service.get_all # 获取主机所有服务
salt '*' service.reload sshd # 重载sshd服务
salt '*' pkg.list_pkgs # 显示软件包版本列表
salt '*' pkg.version python # 显示软件包版本信息
salt '*' pkg.install httpd # 安装软件包
salt 'node1.com' service.status mysql # 查看mysql服务状态
salt 'node1.com' service.start mysql # 启动mysql服务
salt 'node1.com' cmd.run 'service mysql status' # 与上面一样查看服务
salt '*' sys.list_modules # 模块列表
salt-cp '*' /etc/hosts /etc/hosts # 把master上的hosts文件分发到所有主机
salt '*' cp.get_file salt://ceshi/b /tmp/test # 把salt-master端相应的文件,分发文件到minion端
salt '*' cp.get_dir salt://zabbix /tmp # 把salt-master端相应的目录,分发文件到minion端
salt '*' file.copy /tmp/zabbix.sls /tmp/sls # 把salt-master端对应文件拷贝到minion端相应目录下
salt '*' cmd.run 'uptime' # 远程命令执行测试
远程执行脚本:
'cmd.script:'
salt '*' cmd.script salt://scripts/runme.sh
salt '*' cmd.script salt://scripts/runme.sh 'arg1 arg2 "arg 3"'
salt '*' cmd.script salt://scripts/windows_task.ps1 args=' -Input c:\tmp\infile.txt' shell='powershell'
salt '*' cmd.script salt://scripts/runme.sh stdin='one\ntwo\nthree\nfour\nfive\n'
'cmd.shell:'
This passes the cmd argument directly to the shell
salt '*' cmd.shell "ls -l | awk '/foo/{print \$2}'"
salt '*' cmd.shell template=jinja "ls -l /tmp/{{grains.id}} | awk '/foo/{print \$2}'"
salt '*' cmd.shell "Get-ChildItem C:\ " shell='powershell'
salt '*' cmd.shell "grep f" stdin='one\ntwo\nthree\nfour\nfive\n'
salt '*' cmd.shell cmd='sed -e s/=/:/g'
'cmd.shells:'
salt '*' cmd.shells
'cmd.tty:'
salt '*' cmd.tty tty0 'This is a test'
salt '*' cmd.tty pts3 'This is a test'
'cmd.which:'
salt '*' cmd.which cat
**grains选项:**
salt '*' grains.ls # 查看grains分类
salt '*' grains.items # 查看grains所有信息
salt '*' grains.item osrelease # 查看grains某个信息
saltstack安装+基本命令的更多相关文章
- SaltStack安装篇
一.基础介绍1.简介 salt 是一个基础平台管理工具 salt是一个配置管理系统,能够维护预定于状态的远程节点 salt是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据 2.salt的核 ...
- Saltstack 安装使用
Saltstack是一个具备puppet与func功能为一身的集中化,轻量级的自动化运维管理工具,使用python编写,功能非常强大,可以使用EPEL快速安装.相比较puppet,安装和配置更加容易和 ...
- SaltStack 安装及配置认证
一.SaltStack 安装 SaltStack 是基于 Python 开发的,也是基于 C/S 架构,通过服务端 ( master ) 控制多台客户端 ( minion ) 实现批量操作这里我们使用 ...
- SaltStack安装及配置
1.简介SaltStack是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的puppet和加强版的func.SaltStack基于Python语言实现,结合 ...
- SaltStack安装配置
一.环境准备:操作系统CentOS Linux release 7.3.1611master ip:192.168.1.180minion ip:192.168.1.183设置server(maste ...
- saltstack安装配置(syndic)
syndic是saltstack用来做集群部署的,一般结构如图: syndic是一个特殊的minion,syndic类继承于minion类,syndic可以看作一个代理,只做数据传递. CentOS上 ...
- SaltStack安装部署
SaltStack安装部署 安装: 一. master: 1. 配置yum源安装 # rpm --import https://repo.saltstack.com/yum/redhat/6/x86_ ...
- 01_3大配置管理工具、SaltStack安装、修改minion_id
1.配置管理 1.1 puppet /'pʌpɪt/ 木偶:傀儡:受他人操纵的人 使用自有的puppet描述语言,可管理配置文件.用户.cron任务.软件包.系统服务等. 问题: 学习曲线非常陡峭 ...
- saltstack安装配置(yum)
主机规划: (主)master:192.168.25.130 (从)minion:192.168.25.131 192.168.25.132 1.yum安装: 服务端:安装master yum ...
随机推荐
- Git的安装及常用操作
一.Git的安装 1.下载Git,官网地址为:https://git-scm.com/downloads. 2.下载完成之后,双击目录进行安装 3.选择安装目录 4.选择组件,默认即可 5.设 ...
- Linux磁盘与文件管理系统
基本上Linux的正统文件系统为Ext2,该文件系统内的信息主要有: superblock:记录此filesystem的整体信息,包括inode/block的总量,使用量,剩余量,以及文件系统的格式与 ...
- day10 消息队列,多进程和多线程以及协程,异步IO,事件驱动等
回顾一下线程和进程 线程与进程的区别 守护线程: 队列: 两种方式: 先进先出 # 后入先出 #卖水果,后来的来的是新的 生产者消费者模型: 生产包子, 吃包子 事件 event: 红绿灯模型 ...
- 【Linked List Cycle】cpp
题目: Given a linked list, determine if it has a cycle in it. Follow up:Can you solve it without using ...
- IOS开发学习笔记032-UITableView 的编辑模式
UITableView 的三种编辑模式 1.删除 2.排序 3.添加 进入编辑模式,需要设置一个参数 - (IBAction)remove:(UIBarButtonItem *)sender { NS ...
- day02_04.算算多少人
第四题 算算有多少人? 第二题的升级版,看看你能不能做出来 利用你的编程思想去看这道题目,记住不要放过题目的每一个小细节 题目:操场上100多人排队,3人一组多1人,4个一组多2人,5人一组多3人,共 ...
- springcloud 高可用分布式配置中心
SpringCloud教程七:高可用的分布式配置中心(SpringCloud Config) 当服务有很多 都要从服务中心获取配置时 这是可以将服务中心分布式处理 是系统具备在集群下的大数据处理 主要 ...
- quagga源码学习--BGP协议对等体连接建立的状态机
创建完bgp peer之后,就要bgp start了,不然费那么大劲创建出来不做事情就销毁了,就很尴尬了. 那么对等体一旦start起来,就会进入各自的状态,在不同的状态下处理各自的事件消息. 下面列 ...
- WINDOWS开发PHP7扩展
最近在做个项目,需要用到唯一ID的生成,原本在Java和Delphi中,做了一个生成20位字符串(160bit)形式的唯一ID的算法,但是对比GUID(128bit),除了看起来比他短之外,其他并无优 ...
- 【bzoj2789】[Poi2012]Letters 树状数组求逆序对
题目描述 给出两个长度相同且由大写英文字母组成的字符串A.B,保证A和B中每种字母出现的次数相同. 现在每次可以交换A中相邻两个字符,求最少需要交换多少次可以使得A变成B. 输入 第一行一个正整数n ...