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. JAVA发送http GET/POST请求的两种方式+JAVA http 请求手动配置代理

    java发送http get请求,有两种方式. 第一种用URLConnection: public static String get(String url) throws IOException { ...

  2. Milking Time---poj3616(简单dp)

    题目链接:http://poj.org/problem?id=3616 题意:人从奶牛身上挤奶有m个时间段(1----n),每个时间段包含 s e f 表示从 s 到 e 的这段时间可以获得 f 单位 ...

  3. django自定义模板和过滤器

    -自定义过滤器 -1 先app是不是已经在setting中注册 -2 在app下创建一个templatetags(****名字不能变***)的文件夹(模块) -3 在模块下创建一个py文件,名字随意: ...

  4. Linux 使用crontab定时备份Mysql数据库

    项目中数据库的数据是至关重要的!在实际项目中,遇到有客户机房断电导致数据库数据丢失的问题,又因为备份容灾不及时,导致部分数据恢复不了,而刚好这部分丢失的数据对于客户来说又是至关重要的,那么怎么办呢?盲 ...

  5. Android “swipe” vs “fling”

    onFling will get executed when a user makes a "fling" motion, and said motion has a veloci ...

  6. linux网络基础设置 以及 软件安装

    ifconfig #查看所有已激活的网卡信息 临时配置 #yum install net-tools -y 默认ifconfig是没有安装的,可能需要安装 ifconfig eth0 #查看单独一块网 ...

  7. maven项目中如何创建web.xml

    在web工程创建时创建web.xml:用Eclipse新建一个web项目没有自动生成web.xml 在创建maven工程时,大多没有创建web.xml文件,web.xml路径:src/main/web ...

  8. linux 安装 maven

    一.下载 1.创建下载软件包目录  mkdir /home/install 2.在/home/install下载maven包,或者将下载好的maven压缩包上传至/home/install wget  ...

  9. javascript 的dateObj.getTime() 在为C#的获取方式

    public string GetTime(DateTime dt) { Int64 retval = 0; DateTime st = new DateTime(1970, 1, 1); TimeS ...

  10. Python面试题之Super函数

    这是个高大上的函数,在python装13手册里面介绍过多使用可显得自己是高手 23333. 但其实他还是很重要的. 简单说, super函数是调用下一个父类(超类)并返回该父类实例的方法. 这里的下一 ...