Slatstack 介绍

官网:https://saltstack.com/

官方源:http://repo.saltstack.com/  (介绍各操作系统安装方法)

centos 6源

yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-1.el6.noarch.rpm

centos 7 源 

yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-1.el7.noarch.rpm 

http://repo.saltstack.com/yum/redhat/7/x86_64

基于python开发,提供REST API接口

三大功能: 远程执行、配置管理(状态)、云管理

其它:Puppet(ruby)、ansible(python)

四种运行方式:Local、Minion/Master(C/S)、Syndic(代理,类似zabbix proxy)、Salt SSH

快速安装

 - 安装

服务端

yum install salt-master salt-minion -y

客户端

yum install salt-minion -y

启动服务端

systemctl start salt-master

配置客户端

vim /etc/salt/minion
master: 192.168.137.11 # 配置master地址
id: # 每台主机的唯一标识,不配置默认为主机名

启动客户端

systemctl start salt-minion

启动后/etc/salt下生成minion_id文件,默认为主机名

如果修改id,需要删除minion_id

 - master和minion启动后pki介绍

第一次启动minion在/etc/salt下生成pki文件目录

包含minion的公钥minion.pub和私钥minion.pem

第一次启动master在/etc/salt下生成pki文件目录

包含master的公钥master.pub和私钥master.pem

linux-node1.example.com和linux-node2.example.com为minion的公钥,名称为id名

minions_pre为预认证目录

 - 认证

salt-key

Accepted Keys 已同意的key

Denied Keys 拒绝的key

Unaccepted Keys 未认证的key

salt-key -a linux-node1.example.com

指定linux-node1.example.com这台minion被信任

salt-key -a linux*  # 通配符

说明:-a :accept ,-A:accept-all,-d:delete,-D:delete-all

两台minion已认证成功,此时再次查看master pki文件目录,minion的公钥文件放入了minions目录下

再次查看minion pki文件目录,存在minion_master.pub公钥文件

 - 远程执行

语法: 命令 目标 模块.方法 方法参数

检查所有主机状态

salt '*' test.ping

检查指定主机状态

salt "linux-node2.example.com" test.ping

指定主机,远程执行shell命令

salt "linux-node2.example.com" cmd.run "ls -lrt /root"

重启所有主机的zabbix agent

salt "*" cmd.run "systemctl restart zabbix-agent"

- 状态模块

state 写一个描述文件。格式:YAML ,后缀:.sls

YAML介绍(重要)

YAML是"YAML Ain't a Markup Language"(YAML不是一种置标语言)的递归缩写。(可以查看百度百科介绍)

格式:数据结构可以用类似大纲的缩排方式呈现,结构通过缩进来表示,连续的项目通过减号“-”来表示,map结构里面的key/value对用冒号“:”来分隔。

样例如下:

salt管理理解YAML介绍 https://docs.saltstack.com/en/latest/topics/yaml/index.html

salt YAML三个规则:

1)缩进,需要用2个空格,不能使用Tab键;

2)冒号,冒号和缩进共用、键值对(中间有空格)

3)短横线, 于后面的值有空格

- master配置

vim /etc/salt/master
file_roots # 定义base、测试、灰度、生产环境配置文件路径,base名称不能改

重启master

systemctl restart salt-master

创建配置文件目录

cd /srv
mkdir salt

 - sls文件创建

apache.sls,放入到/srv/salt/web目录下

apache-install:   # 自定义的id,名称
pkg.installed: # 状态模块,salt自带的, 模块.方法
- names: # 参数
- httpd
- httpd-devel apache-service: # 自定义的id,名称
service.running: # 状态模块,salt自带的, 模块.方法
- name: httpd # 参数
- enable: True

执行这个文件

salt "*" state.sls web.apache

执行流程:

1)master将这个文件发送至minion

2)minion放在/var/cache/salt/minion目录下

3)minion根据这个文件从上往下执行

执行结果

 linux-node2.example.com:
----------
ID: apache-install
Function: pkg.installed
Name: httpd
Result: True
Comment: The following packages were installed/updated: httpd
Started: ::23.142622
Duration: 103093.75 ms
Changes:
----------
apr:
----------
new:
1.4.-.el7
old:
apr-util:
----------
new:
1.5.-.el7
old:
httpd:
----------
new:
2.4.-.el7.centos.
old:
httpd-tools:
----------
new:
2.4.-.el7.centos.
old:
mailcap:
----------
new:
2.1.-.el7
old:
----------
ID: apache-install
Function: pkg.installed
Name: httpd-devel
Result: True
Comment: The following packages were installed/updated: httpd-devel
Started: ::06.266419
Duration: 75699.845 ms
Changes:
----------
apr-devel:
----------
new:
1.4.-.el7
old:
apr-util-devel:
----------
new:
1.5.-.el7
old:
cyrus-sasl-devel:
----------
new:
2.1.-.el7_2
old:
expat-devel:
----------
new:
2.1.-.el7
old:
httpd-devel:
----------
new:
2.4.-.el7.centos.
old:
libdb-devel:
----------
new:
5.3.-.el7
old:
openldap-devel:
----------
new:
2.4.-.el7_2
old:
----------
ID: apache-service
Function: service.running
Name: httpd
Result: True
Comment: Service httpd has been enabled, and is running
Started: ::22.549732
Duration: 509.773 ms
Changes:
----------
httpd:
True Summary for linux-node2.example.com
------------
Succeeded: (changed=)
Failed:
------------
Total states run:
Total run time: 179.303 s
linux-node1.example.com:
----------
ID: apache-install
Function: pkg.installed
Name: httpd
Result: True
Comment: Package httpd is already installed
Started: ::17.773014
Duration: 1030.017 ms
Changes:
----------
ID: apache-install
Function: pkg.installed
Name: httpd-devel
Result: True
Comment: The following packages were installed/updated: httpd-devel
Started: ::18.803216
Duration: 179505.346 ms
Changes:
----------
apr-devel:
----------
new:
1.4.-.el7
old:
apr-util-devel:
----------
new:
1.5.-.el7
old:
cyrus-sasl-devel:
----------
new:
2.1.-.el7_2
old:
expat-devel:
----------
new:
2.1.-.el7
old:
httpd-devel:
----------
new:
2.4.-.el7.centos.
old:
libdb-devel:
----------
new:
5.3.-.el7
old:
openldap-devel:
----------
new:
2.4.-.el7_2
old:
----------
ID: apache-service
Function: service.running
Name: httpd
Result: True
Comment: The service httpd is already running
Started: ::18.523234
Duration: 62.391 ms
Changes: Summary for linux-node1.example.com
------------
Succeeded: (changed=)
Failed:
------------
Total states run:
Total run time: 180.598 s

- top file

默认文件名top.sls,放在base目录下,base目录在file_roots配置项配置

通过top.sls文件可以实现根据不同的minion执行不同的sls文件

base:  # 固定名称,必填
'linux-node1.example.com': # minion id
- web.apache # apache.sls
'linux-node2.example.com':
- web.apache

salt "*" state.highstate

上面命令执行state高级状态,它只会执行入口文件top.sls, 根据top文件中内容执行

生产环境中不建议使用*,需要指定具体主机,先用test测试

salt "linux-node1.example.com" state.highstate test=True

测试正常后执行

salt "linux-node1.example.com" state.highstate

Saltstack 介绍、安装、配置(一)的更多相关文章

  1. saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived

    saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived 安装配置Keepalived 1.编写功能模块 #创建keepalived目录# mkdir -p ...

  2. saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy

    saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy 下载haproxy1.6.2.tar.gz下载地址:http://www.haproxy.org/download/1. ...

  3. SaltStack自动化安装配置haproxy的Keepalived

    keepalived配置安装 什么是vrrp,阿里云不支持组播,所以阿里云上不能配置keepalived,但是它有自己的slb.运维的大忌,在命令行复制粘贴,一般是先复制到文本中查看确认以后salt编 ...

  4. SaltStack自动化安装配置haproxy

    准备环境node1:192.168.217.149 (saltstack master)node2:192.168.217.150(saltstack minion)下载haproxy1.6.2.ta ...

  5. saltstack syndic安装配置使用

    salt-syndic是做神马的呢?如果大家知道zabbix proxy的话那就可以很容易理解了,syndic的意思为理事,其实如果叫salt-proxy的话那就更好理解了,它就是一层代理,如同zab ...

  6. Nginx介绍,安装,配置

    引言 为什么要学习Nginx 问题一: 客户端到底要将请求发送给哪台服务器? 问题二: 如果所有客户端的请求都发送给了服务器1,那另一台岂不是废了 问题三: 客户端发送的请求可能是申请动态资源的,也可 ...

  7. IntelliJ IDEA使用教程一 介绍&安装&配置

    http://blog.csdn.net/nextyu/article/details/47206015 全套

  8. 长平狐 Android-x86虚拟机安装配置全攻略

    Android-x86虚拟机安装配置网上有很多,但是全部说明白的确不多,希望这篇文章能把主要的配置介绍给您,帮助您少走一些弯路. 本文分别针对VMWare和Virtual Box两种虚拟机介绍安装配置 ...

  9. Android-x86虚拟机安装配置全攻略

    转自Android-x86虚拟机安装配置全攻略 注:这里安装从简,具体请参考虚拟机Vmware安装运行安卓4.0详细教程 Android-x86虚拟机安装配置网上有很多,但是全部说明白的确不多,希望这 ...

  10. Ubuntu 16.04 + CUDA 8.0 + cuDNN v5.1 + TensorFlow(GPU support)安装配置详解

    随着图像识别和深度学习领域的迅猛发展,GPU时代即将来临.由于GPU处理深度学习算法的高效性,使得配置一台搭载有GPU的服务器变得尤为必要. 本文主要介绍在Ubuntu 16.04环境下如何配置Ten ...

随机推荐

  1. HTML5之CSS3 3D transform 剖析式学习之一

    最近坐地铁发现“亚洲动物基金”在地铁上做了很多公益广告,比较吸引人的是一个月熊的广告.做的很可爱.回去就搜了一下,发现这个网站是HTML5做的,非常炫. 所以想学习一下,方法就是传统的学习办法,模仿. ...

  2. memcache 安装

    1 下载两个文件 wget http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz wget http://www.monkey.org/ ...

  3. Eclipse添加代码注释模板

    Eclipse支持我们自定义模板,比如文件的注释,类注释,函数注释等功能.eclipse自身有自带的模板,我们也可以自己定义.一次点击:windows->preference—>java- ...

  4. iOS-- 快速集成iOS基于RTMP的视频推流

    效果图 iTools有点卡, 但是推到服务器倒是很快的. 推流 前言 这篇blog是iOS视频直播初窥:<喵播APP>的一个补充. 因为之前传到github上的项目中没有集成视频的推流.有 ...

  5. 0929mysql前缀索引如何找到合适的位数

    前缀索引,是指对于VARCHAR/TEXT/BLOB类型的字段建立索引时一般都会选择前N个字符作为索引.索引很长的字符列,会让索引变得大且慢.索引开始的部分字符,这样可以大大节约索引空间,从而提高索引 ...

  6. 使用while循环输入 1 2 3 4 5 6 8 9 10

    n = 1 while n<11: if n==7: pass else: print(n) n = n +1

  7. webkit webApp 开发技术要点总结

    如果你是一名前端er,又想在移动设备上开发出自己的应用,那怎么实现呢?幸好,webkit内核的浏览器能帮助我们完成这一切.接触 webkit webApp的开发已经有一段时间了,现把一些技巧分享给大家 ...

  8. 分布式搜索引擎Elasticsearch PHP类封装 使用原生api

    //官方的 php  api写的鸡肋了,下面这个类可以使用 es api 操作. <?php class ElasticSearch { public $index; function __co ...

  9. Swift开发小技巧--扫描二维码,二维码的描边与锁定,设置扫描范围,二维码的生成(高清,无码,你懂得!)

    二维码的扫描,二维码的锁定与描边,二维码的扫描范围,二维码的生成(高清,无码,你懂得!),识别相册中的二维码 扫描二维码用到的三个重要对象的关系,如图: 1.懒加载各种类 // MARK: - 懒加载 ...

  10. 【BZOJ 2194】快速傅立叶之二

    随便代换一下把它变成多项式乘法,及$C[T]=\sum_{i=0}^{T}A[i]×B[T-i]$这种形式,然后FFT求一下就可以啦 #include<cmath> #include< ...