环境:

  1. node1:172.16.1.60 OS:centos 7.3 master hostname:centos7u3-1
  2. node2:172.16.1.61 OS:centos 7.3 minion hostname:centos7u3-2

准备工作:

  1. 在/etc/hosts文件中添加(如有DNS服务器,此操作可不用操作)
  2. 172.16.1.60 centos7u3-1
  3. 172.16.1.61 centos7u3-2

master 安装:

yum install salt-master salt-minion -y

配置:

[root@centos7u3-1 srv]# egrep -v '^#|^$' /etc/salt/master

  1. auto_accept: True #打开自动注册
  2. file_roots:
  3. base:
  4. - /srv/salt/
  5. pillar_roots:
  6. base:
  7. - /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等,还有如下高级命令的使用,以及模板配置的渲染、扩展模块的二次开发等,可以自己去深入学习哈。

  1. **salt相关的管理命令:**
  2. salt-run manage.up # 查看存活的minion
  3. salt-run manage.down # 查看死掉的minion
  4. salt-run manage.down removekeys=True # 查看down掉的minion,并将其删除
  5. salt-run manage.status # 查看minion的相关状态
  6. salt-run manage.versions # 查看salt的所有master和minion的版本信息
  7. salt-run jobs.active # 查看哪些系统任务还在处理中
  8. salt-run jobs.list_jobs # 显示所有的已完成或部分完成的任务信息
  9. salt '*' saltutil.running # 查看运行的jobs ID
  10. salt \* saltutil.kill_job 20151209034239907625 # kill掉进程ID
  11. salt -d # 查看帮助文档
  12. salt -d|grep service # 查看service相关模块命令
  13. salt '*' sys.doc # 查看帮助文档
  14. salt-key -L # 查询所有接收到的证书
  15. salt-key -a <证书名> # 接收单个证书
  16. salt-key -A # 接受所有证书
  17. salt-key -d <证书名> # 删除单个证书
  18. salt-key -D # 删除所有证书
  19. salt '*' service.get_all # 获取主机所有服务
  20. salt '*' service.reload sshd # 重载sshd服务
  21. salt '*' pkg.list_pkgs # 显示软件包版本列表
  22. salt '*' pkg.version python # 显示软件包版本信息
  23. salt '*' pkg.install httpd # 安装软件包
  24. salt 'node1.com' service.status mysql # 查看mysql服务状态
  25. salt 'node1.com' service.start mysql # 启动mysql服务
  26. salt 'node1.com' cmd.run 'service mysql status' # 与上面一样查看服务
  27. salt '*' sys.list_modules # 模块列表
  28. salt-cp '*' /etc/hosts /etc/hosts # 把master上的hosts文件分发到所有主机
  29. salt '*' cp.get_file salt://ceshi/b /tmp/test # 把salt-master端相应的文件,分发文件到minion端
  30. salt '*' cp.get_dir salt://zabbix /tmp # 把salt-master端相应的目录,分发文件到minion端
  31. salt '*' file.copy /tmp/zabbix.sls /tmp/sls # 把salt-master端对应文件拷贝到minion端相应目录下
  32. salt '*' cmd.run 'uptime' # 远程命令执行测试
  33.  远程执行脚本:
  34. 'cmd.script:'
  35. salt '*' cmd.script salt://scripts/runme.sh
  36. salt '*' cmd.script salt://scripts/runme.sh 'arg1 arg2 "arg 3"'
  37. salt '*' cmd.script salt://scripts/windows_task.ps1 args=' -Input c:\tmp\infile.txt' shell='powershell'
  38. salt '*' cmd.script salt://scripts/runme.sh stdin='one\ntwo\nthree\nfour\nfive\n'
  39. 'cmd.shell:'
  40. This passes the cmd argument directly to the shell
  41. salt '*' cmd.shell "ls -l | awk '/foo/{print \$2}'"
  42. salt '*' cmd.shell template=jinja "ls -l /tmp/{{grains.id}} | awk '/foo/{print \$2}'"
  43. salt '*' cmd.shell "Get-ChildItem C:\ " shell='powershell'
  44. salt '*' cmd.shell "grep f" stdin='one\ntwo\nthree\nfour\nfive\n'
  45. salt '*' cmd.shell cmd='sed -e s/=/:/g'
  46. 'cmd.shells:'
  47. salt '*' cmd.shells
  48. 'cmd.tty:'
  49. salt '*' cmd.tty tty0 'This is a test'
  50. salt '*' cmd.tty pts3 'This is a test'
  51. 'cmd.which:'
  52. salt '*' cmd.which cat
  53. **grains选项:**
  54. salt '*' grains.ls # 查看grains分类
  55. salt '*' grains.items # 查看grains所有信息
  56. salt '*' grains.item osrelease # 查看grains某个信息

saltstack安装+基本命令的更多相关文章

  1. SaltStack安装篇

    一.基础介绍1.简介 salt 是一个基础平台管理工具 salt是一个配置管理系统,能够维护预定于状态的远程节点 salt是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据 2.salt的核 ...

  2. Saltstack 安装使用

    Saltstack是一个具备puppet与func功能为一身的集中化,轻量级的自动化运维管理工具,使用python编写,功能非常强大,可以使用EPEL快速安装.相比较puppet,安装和配置更加容易和 ...

  3. SaltStack 安装及配置认证

    一.SaltStack 安装 SaltStack 是基于 Python 开发的,也是基于 C/S 架构,通过服务端 ( master ) 控制多台客户端 ( minion ) 实现批量操作这里我们使用 ...

  4. SaltStack安装及配置

    1.简介SaltStack是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的puppet和加强版的func.SaltStack基于Python语言实现,结合 ...

  5. SaltStack安装配置

    一.环境准备:操作系统CentOS Linux release 7.3.1611master ip:192.168.1.180minion ip:192.168.1.183设置server(maste ...

  6. saltstack安装配置(syndic)

    syndic是saltstack用来做集群部署的,一般结构如图: syndic是一个特殊的minion,syndic类继承于minion类,syndic可以看作一个代理,只做数据传递. CentOS上 ...

  7. SaltStack安装部署

    SaltStack安装部署 安装: 一. master: 1. 配置yum源安装 # rpm --import https://repo.saltstack.com/yum/redhat/6/x86_ ...

  8. 01_3大配置管理工具、SaltStack安装、修改minion_id

    1.配置管理 1.1 puppet /'pʌpɪt/  木偶:傀儡:受他人操纵的人 使用自有的puppet描述语言,可管理配置文件.用户.cron任务.软件包.系统服务等. 问题: 学习曲线非常陡峭 ...

  9. saltstack安装配置(yum)

    主机规划: (主)master:192.168.25.130 (从)minion:192.168.25.131     192.168.25.132 1.yum安装: 服务端:安装master yum ...

随机推荐

  1. Java并发之(2):线程通信wait/notify(TIJ_21_5)

    简介: java中线程间同步的最基本的方式就是使用wait()&notify()&notifyAll(),它们是线程间的握手机制.除了上述方法,java5还在java.util.con ...

  2. 39、apk瘦身(转载)

    本文转自::Android开发中文站 » 关于APK瘦身值得分享的一些经验 从APK的文件结构说起 APK在安装和更新之前都需要经过网络将其下载到手机,如果APK越大消耗的流量就会越多,特别是对于使用 ...

  3. STL 里面的几个容器简叙

    出处:http://blog.csdn.net/niushuai666/article/details/6654951 list1.list的成员函数push_back()把一个对象放到一个list的 ...

  4. seajs引入jquery

    seajs 2.2.1在config文件中preload一次jquery,就可以在整个项目中使用jquery.如下: seajs.on('exec', function(module) { if (m ...

  5. 【Python Selenium】简单数据生成脚本

    最近因工作需要,写了一个简单的自动化脚本,纯属学习,顺便学习下selenium模块. 废话不多说,直接上代码!! 这里一位大神重写了元素定位.send_keys等方法,咱们直接进行调用. 适用Pyth ...

  6. startActivityForResult用法

    使用场景:A界面(activity) 可跳转到一个(假设为 B)或多个子Activity,要求B处理完工作之后返回A 界面,或许同时返回一些数据交给A继续处理.如 由登陆界面A跳转到注册界面B,注册成 ...

  7. 实战项目——获取图片中的GPS位置信息和拍摄时间

    今天突然看到有人写过获取图片中位置信息的程序.我觉得很有趣,也就自己实践了一下,研究了一下 话不多说,先上代码 #!/usr/bin/env python3 # -*- coding: utf-8 - ...

  8. [python][django学习篇[13]增加markdown_1

    1 进入虚拟环境,安装markdwon  python install markdown 2 修改视图函数detail def detail(request, pk): # get_object_or ...

  9. Struts2中 ValueStack、ActionContext、ServletContext、request、session等 表格解析

    变量 从ActionContext中获得 生命周期 用Ongl来读取值 使用ServletConfigInterceptor来注入 ActionContext类 静态方法ActionContext. ...

  10. 【bzoj1146】[CTSC2008]网络管理Network 倍增LCA+dfs序+树状数组+主席树

    题目描述 M公司是一个非常庞大的跨国公司,在许多国家都设有它的下属分支机构或部门.为了让分布在世界各地的N个部门之间协同工作,公司搭建了一个连接整个公司的通信网络.该网络的结构由N个路由器和N-1条高 ...