Saltstack
类似于puppet

salt的核心功能
使用命令 发送到远程系统是并行的而不是串行的
使用安全加密的协议
使用最小最快的网络载荷
提供简单的编程接口

Python编写,相当轻量级
通讯层采用zeromq

安装:
master:
[root@yz6205 ~]# yum -y install epel-release
[root@yz6205 ~]# rpm -q epel-release
epel-release-6-8.noarch

[root@yz6205 ~]# yum -y install salt-master

[root@yz6245 ~]# salt '*' test.ping
minion-yz6205:
True
[root@yz6245 ~]# salt 'minio?-yz6205' test.ping
minion-yz6205:
True

正则表达式

[root@yz6245 ~]# salt -E '(minion|minion)-yz6205' test.ping
minion-yz6205:
True
客户端只有一台,所以只出现一条

[root@yz6245 ~]# cat /etc/salt/states/top.sls
base:
'minion.yz205':
- match: pcre #支持正则表达式来匹配
- init.pkg

问题:
[root@yz6245 ~]# salt '*' state.highstate
minion-yz6205:
----------
ID: states
Function: no.None
Result: False
Comment: No Top file or external nodes data matches found
Started:
Duration:
Changes:

Summary
------------
Succeeded: 0
Failed: 1
------------
Total states run: 1

解决:

[root@yz6245 ~]# salt '*' saltutil.is_running state.highstate
minion-yz6205:

[root@yz6245 ~]# salt '*' cmd.exec_code python 'import sys; print sys.version'
minion-yz6205:
2.7.8 (default, Jun 19 2016, 09:11:46)
[GCC 4.4.6 20110731 (Red Hat 4.4.6-3)]

文件系统
1,修改配置文件
2,创建目录
3,写sls文件

远程执行
配置管理
云管理

[root@yz6245 conf]# salt '*' cmd.run 'uptime'

[root@yz6245 init]# salt 'yz3139.hadoop.data.sina.com.cn' state.sls init.pkg
yz3139.hadoop.data.sina.com.cn:
----------
ID: pkg.init
Function: pkg.installed
Name: mtr
Result: True
Comment: Package mtr is already installed
Started: 15:58:43.623924
Duration: 2464.369 ms
Changes:
----------
ID: pkg.init
Function: pkg.installed
Name: nmap
Result: True
Comment: The following packages were installed/updated: nmap
Started: 15:58:46.088615
Duration: 10325.329 ms
Changes:
----------
nmap:
----------
new:
2:5.51-3.el6
old:

----------
ID: pkg.init
Function: pkg.installed
Name: lrzsz
Result: True
Comment: Package lrzsz is already installed
Started: 15:58:56.430125
Duration: 1.079 ms
Changes:

Summary
------------
Succeeded: 3 (changed=1)
Failed: 0
------------
Total states run: 3

10.39.3.145

文件管理:
limit-conf-config:
file.managed:
- name: /etc/security/limits.conf
- source: salt://init/files/limits.conf
- user: root
- group: root
- mode: 644

[root@yz6245 MySQL-python-1.2.3]# salt 'yz3145.hadoop.data.sina.com.cn' grains.items

[root@yz6245 MySQL-python-1.2.3]# salt 'yz3145.hadoop.data.sina.com.cn' grains.items os

[root@yz6245 MySQL-python-1.2.3]# salt 'yz3145.hadoop.data.sina.com.cn' grains.ls
[root@yz6245 MySQL-python-1.2.3]# salt 'yz3145.hadoop.data.sina.com.cn' grains.get os
yz3145.hadoop.data.sina.com.cn:
CentOS

[root@yz6245 MySQL-python-1.2.3]# salt -G 'os:Centos' test.ping
yz3139.hadoop.data.sina.com.cn:
True
yz3145.hadoop.data.sina.com.cn:
True
yz6205.hadoop.data.sina.com.cn:

[root@yz6245 MySQL-python-1.2.3]# salt -G 'os:Suse' test.ping
No minions matched the target. No command was sent, no jid was assigned.

grains:
roles:nginx
env:prod

[root@yz6245 MySQL-python-1.2.3]# salt -G 'env:prod' test.ping
yz3145.hadoop.data.sina.com.cn:
True

[root@yz6245 MySQL-python-1.2.3]# salt '*' saltutil.sync_grains #刷新客户端配置
yz3139.hadoop.data.sina.com.cn:
yz3145.hadoop.data.sina.com.cn:
yz6205.hadoop.data.sina.com.cn:
[root@yz6245 MySQL-python-1.2.3]# salt -G 'cloud:openstack' test.ping
yz3145.hadoop.data.sina.com.cn:
True

[root@yz6245 states]# cat top.sls
base:
'(yz3139|yz3145).hadoop.data.sina.com.cn':
- match: pcre #支持正则表达式来匹配
- init.pkg
- init.limit

'roles:nginx':
- match: grain
- init.pkg

[root@yz6245 states]# salt 'yz3145.hadoop.data.sina.com.cn' pillar.items
yz3145.hadoop.data.sina.com.cn:
----------
master:
----------
__role:
master
alternative.mysql.db:
salt
pillar:

468 pillar_roots:
469 base:
470 - /etc/salt/pillar

mkdir /etc/salt/pillar
pillar/top.sls
base:
'*':
- init.rsyslog

/etc/salt/pillar/init

[root@yz6245 states]# salt '*' pillar.item syslog
yz3145.hadoop.data.sina.com.cn:
----------
syslog:
rsyslog
yz3139.hadoop.data.sina.com.cn:
----------
syslog:
rsyslog
yz6205.hadoop.data.sina.com.cn:
----------
syslog:
rsyslog

[root@yz6245 states]# salt -I 'syslog:rsyslog' test.ping
yz3145.hadoop.data.sina.com.cn:
True
yz3139.hadoop.data.sina.com.cn:
True
yz6205.hadoop.data.sina.com.cn:
True

[root@yz6245 files]# salt '*' state.highstate test=True

[root@yz6245 files]# salt 'yz3145.hadoop.data.sina.com.cn' state.highstate

saltstack笔记的更多相关文章

  1. 2.saltstack笔记之目标,模块,返回写入数据库

    作者:刘耀 QQ:22102107 一.目标(targeting Minions) 1.匹配Minions Id 匹配所有 (*) [root@node1 salt]# salt '*' test.p ...

  2. saltstack学习笔记1 --安装

    salt官网:http://docs.saltstack.cn/zh_CN/latest/ 安装教程: - http://docs.saltstack.cn/zh_CN/latest/topics/i ...

  3. 1.saltstack基础笔记

    环境: master: 节点node1:阿里云:121.42.195.15 centos6.6 minion: 节点node2:腾讯云:182.254.157.19 centos6.6 一.salts ...

  4. SaltStack 使用笔记

    centos 7安装yum -y install epel-releaseyum clean allyum makecacheyum -y install salt-minionsed -i 's/# ...

  5. Saltstack学习笔记--安装

    实验环境: 两台RHEL 7.2 192.168.75.135          master .minion 192.168.75.136          minion 确保机器的防火墙及seli ...

  6. saltstack入门个人笔记

    offical website reference1 reference2 install apt-get install python-software-properties apt install ...

  7. saltstack实战笔记

    #运维管理工具 ansible #支持ssh,不需要客户端 saltstack #也是只是ssh,不需要客户端的 安装架构是,master /minion 安装salt的依赖模块 python zer ...

  8. SaltStack学习笔记之安装zabbix_agentd(jinja和pillar)

    一.环境说明 机器 IP 主机名 Master 192.168.0.23 minion.saltstack.com Minion 192.168.0.35 minion-node2.saltstack ...

  9. saltstack自动化运维工具搭建个人笔记

    至于为什么选择saltstack,因为Puppet.Chef基于Ruby开发,而ansible.saltstack基于python开发,便于后期二次,良好的可移植性. 又,ansible基于SSH协议 ...

随机推荐

  1. django博客项目4:博客首页视图(1)

    Web 应用的交互过程其实就是 HTTP 请求与响应的过程.无论是在 PC 端还是移动端,我们通常使用浏览器来上网,上网流程大致来说是这样的: 我们打开浏览器,在地址栏输入想访问的网址,比如 http ...

  2. Unity3d依赖于平台的编译

    Unity的这一功能被命名为"依赖于平台的编译". 这包括了一些预编译处理指令,让你能够专门的针对不同的平台分开编译和运行一段代码. 此外,你能够在编辑器下运行一些代码用于測试而不 ...

  3. JSP--JSP语法--指令---九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构

    一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HTML标 ...

  4. filebeat 简介安装

    Filebeat is a lightweight shipper for forwarding and centralizing log data. Installed as an agent on ...

  5. 在Linux下查找文件内容包含某个特定字符串的文件

    如何在Linux下查找文件内容包含某个特定字符串的文件? 我的目录下面有test1和test2两个文件夹,里面都含有很多文件,其中test2里面还包含一个test文件夹 我想请问的是,如何通过查找关键 ...

  6. CRM——插件流程回顾

    1. Django项目启动 自动加载文件 制作启动文件 1. 注册strak 在apps.py 类里面增加如下 def ready(self): from django.utils.module_lo ...

  7. Linux Shell编程第2章——Linux文件系统

    目录 用户和用户组管理 用户管理常用命令 用户组管理常用命令 文件和目录操作 文件操作常用命令 目录操作常用命令 文件和目录权限管理 文件查找--find 用户和用户组管理 用户管理常用命令 用户的角 ...

  8. 求组合数的方法:转载自VincentCZW的博客

    遇到了就查了下:地址:http://www.cnblogs.com/BeyondAnyTime/archive/2012/05/18/2508189.html 求一个组合数Cnm的值,Cnm= n! ...

  9. linux命令(6/9):watch命令

    watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行.在Linux下,watch是周期性的执行下个 ...

  10. 2018-2019-2 20165114《网络对抗技术》Exp3 免杀原理与实践

    Exp3 免杀原理与实践 目录 一.实验内容 二.基础问题回答 (1)杀软是如何检测出恶意代码的? (2)免杀是做什么? (3)免杀的基本方法有哪些? 三.实践过程记录 正确使用msf编码器,msfv ...