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. lua53编译

    #下载lua包lua-5.3.5 #vs2017新建个空工程,删除lua.c,luac,c,设置配置类型 动态库.dll #编译完成

  2. django_上传文件

    要求:  写一个文件上传:如果文件名字重复,不要覆盖,并且放到项目根路径的media文件夹下 def upload(request): if request.method == "GET&q ...

  3. centos7 只需两步安装rabbitmq

    # yum -y install rabbitmq-server # systemctl start rabbitmq-server  && systemctl enable rabb ...

  4. POJ_1195 Mobile phones 【二维树状数组】

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u013912596/article/details/33802561 题目链接:id=1195&qu ...

  5. Unity 自定义编辑窗体之ScriptableWizard

    当我们在编辑界面要批量设置游戏资源的时候,就需要从UnityEditor里面继承,实现自己的窗口类. 所幸UNITY提供了最简单的一个自定义窗体类,我们直接往上扔public类型的属性就好,提供了确认 ...

  6. caffe训练自己的数据集

    默认caffe已经编译好了,并且编译好了pycaffe 1 数据准备 首先准备训练和测试数据集,这里准备两类数据,分别放在文件夹0和文件夹1中(之所以使用0和1命名数据类别,是因为方便标注数据类别,直 ...

  7. java 工厂模式的作用,为什么要用工厂模式以及示例演示

    1 工厂模式的作用,为什么要用工厂模式? 工厂模式是为了解耦:把对象的创建和使用的过程分开.就是Class A 想调用Class B,那么只是调用B的方法,而至于B的实例化,就交给工厂类. 工厂模式可 ...

  8. 对Java 静态代码块的一些了解

    一 般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情 况下,其他程序来调用的时候,需要使用静态方法,这种 ...

  9. java 怎么让打印信息换行?

    System.out.println("账号=="+name+"\n"); System.out.println("密码=="+pwd+&q ...

  10. Hive2.2.1概述(待重写)

    概述 hive 是一个包裹着 hdfs 的壳子,hive 通过 hql,将 sql 翻译成 MR ,进行数据查询. Hive是⼀个构建在Hadoop之上的数据仓库 hive的数据存在hdfs上,元信息 ...