Slatstack 介绍

官网:https://saltstack.com/

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

 yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm   #cenyos7官方yum源

 

saltstack功能介绍
三大功能:

1.远程执行
2.配置管理(配置某个服务状态)
3.云管理 (对接openstack)

saltstack的优点
(1)、部署简单,方便
(2)、支持大部分UNIX/Linux及Windows环境;
(3)、主从集中化管理;
(4)、配置简单、功能强大、扩展性强;
(5)、主控端(master)和被控端(minion)基于证书认证,安全可靠;
(6)、支持API及自定义模块,可通过Python轻松扩展。

staltstack的四种运行方式:
1.Local
2. Minion/Master C/S
3.Syndic - 类似于zabbix proxy
4. Salt SSH

一.安装saltstack

服务端

yum install salt-master salt-minion -y

客户端

yum install salt-minion -y

启动服务端

systemctl start salt-master

systemctl enable salt-master

配置客户端

vim /etc/salt/minion
master: 10.0.0.11 #可以是主机名需要解析(指定服务端的IP地址),冒号有空格
id: # 每台主机的唯一标识,不配置默认为主机名

启动客户端  

systemctl start salt-minion

systemctl enable salt-minion

 

注意事项

minion配置中有一个id配置,默认是hostname,如果id配置和hostname不一致会导致无法进行通信,那么当hostname做了修改,或者错误的时候该怎么配置呢?
①关闭salt-minion
②salt-key -d id 在master上删除minion的id
③minion上删除pki目录
④minion上删除minion_id文件
⑤修改完成,启动minion
#此处必须先停掉minion修改,并删除相应的文件,否则会默认地去查找原先的配置,已踩坑 #以下是刚装完查看minion_id变成了www.test123.com。进行修改成linux-node2.example.com
[root@linux-node2 salt]# cat minion_id
www.test123.com
[root@linux-node2 salt]# systemctl stop salt-minion
[root@linux-node2 salt]# rm -rf pki
[root@linux-node2 salt]# rm -rf minion_id
[root@linux-node2 salt]# systemctl start salt-minion
[root@linux-node2 salt]# cat minion_id
linux-node2.example.com

  

 - master和minion启动后pki介绍

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

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

第一次启动master在/etc/salt下生成pki文件目录,因为之前在配置文件/etc/salt/

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

linux-node1.example.com和linux-node2.example.com为minion的公钥,名称为id名minions_pre为预认证目录

通过查看MD5之可知,minions_pre目录下的文件就是客户端上的公钥

 - 认证过程

salt-key

salt-key命令介绍:
-L  列出所有
-d 删除指定的支持通配符
-D 删除所有
-A 添加所有
-a 指定添加

Accepted Keys 已同意的key

Denied Keys 拒绝的key

Unaccepted Keys 未认证的key

[root@7mini-node1 ~] salt-key -a 7mini-node2   #指定认证某台机器
[root@7mini-node1 ~] salt-key -a 7mini* # 通配符

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

验证是否认证

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

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

 - 远程执行

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

检查所有主机状态

salt '*' test.ping   #常用

检查指定主机状态

[root@7mini-node1 salt]# salt "7mini-node2" test.ping
7mini-node2:
True

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

salt "7mini-node2" cmd.run "ls -lrt /root"

  

  

- 状态模块

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

YAML:三板斧
1、 缩进   (2个空格,不能使用Tab)
2、 冒号 key: value (注意key后面需要有空格)
3、 短横线 – list1   - list2  可以写多个
  
缩进和冒号表示层级关系:
冒号表示key: value   表示层级关系

短横线 – list      列表,后面都有空格

/etc/salt/master配置文件也是YAML语法

- master配置

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

设置base、测试、灰度、生产环境

[root@linux-node1 ~]# vim /etc/salt/master     #定义yaml文件放的位置,base环境是必备的
file_roots:
base:
- /srv/salt/base
dev:
- /srv/salt/dev
test:
- /srv/salt/test
prod:
- /srv/salt/prod
[root@7mini-node1 ~]# systemctl restart salt-master.service

  

创建目录

[root@7mini-node1 ~]# mkdir -p /srv/salt/{base,dev,test,prod}

  

- sls文件创建

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

[root@linux-node1 ~]# cd /srv/salt/base/
[root@linux-node1 base]# mkdir web
[root@linux-node1 web]# vim apache.sls #编写安装apache的YAML文件
apache-install:
pkg.installed:---------->模块pkg,方法installed,会匹配操作系统进行选择安装的方法
- name: httpd--------->装的包的名称 apache-service:----------->id要唯一
service.running:-------->状态模块service,running为模块的方法
- name: httpd--------->管理服务的名称
- enable: True-------->设置开机自动启动 [root@7mini-node1 ~]# salt '7mini-node2' state.sls web.apache
#如果apache.sls的位置是在prod目录下,需要在后面增加saltenv=prod
#salt '7mini-node2' state.sls web.apache saltenv=prod

- top.sls文件

实现自动化安装,需要写一个top.sls
[root@linux-node1 base]# pwd
/srv/salt/base
[root@linux-node1 base]# vim top.sls #必须在base环境下写
base:
'linux-node1.example.com':
- web.apache
'linux-node2.example.com':
- web.apache
****************************
如果只有一个任务在全部机子上执行,也可以:
base:
'*'
- web.apache
****************************
[root@linux-node1 ~]# salt '*' state.highstate #去top.sls读取,*代表通知哪些主机 salt '*' state.highstate test=True #在不想影响当前主机的运行情况,可以使用test=True 进行预测试

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. chrome 浏览器如何安装草料二维码

    https://cli.im/news/6527 实测有效

  2. linux 内存计算

    原文: http://www.open-open.com/lib/view/open1424325362577.html Linux中的Cache Memory 什么是Cache Memory(缓存内 ...

  3. Git同时push到多个远程仓库

    添加第二个远程地址时使用以下命令: git remote set-url --add origin git@github.com:morethink/programming.git 查看远程分支:gi ...

  4. R1(下)—数据挖掘—关联规则理论介绍与R实现

    Apriori algorithm是关联规则里一项基本算法.是由Rakesh Agrawal和Ramakrishnan Srikant两位博士在1994年提出的关联规则挖掘算法.关联规则的目的就是在一 ...

  5. 【CodeForces】679 A. Bear and Prime 100

    [题目]A. Bear and Prime 100 [题意]有一数字x,每次可询问一个数字y是否x的因子,最后输出数字x是否素数,要求询问次数<=20. [题解]容易发现[2,100]范围内的非 ...

  6. About configuration center of Apollo

    A comparison among different configuration management tools Use of Apollo configuration management p ...

  7. c语言学习笔记.指针.

    指针: 一个变量,其值为另一个变量的地址,即,内存位置的直接地址. 声明: int *ptr; /* 一个整型的指针,指针指向的类型是整型 */ double *ptr; /* 一个 double 型 ...

  8. SQLite3 使用教学

    source: SQL中文站:http://www.sqlite.com.cn/MySqlite/4/378.Html OS X自从10.4后把SQLite这套相当出名的数据库软件,放进了作业系统工具 ...

  9. python使用requests模块模拟登陆知乎

    from bs4 import BeautifulSoup import requests import time def captcha(captcha_data): with open(" ...

  10. linux系统性能排查命令

    [top] 命令可以动态查看当前系统的资源情况,以及占用资源的命令列表 用法: - ctrl + c / q : 停止此命令运行 - c : 展示完整的命令 - [top -bn1]:可以不动态的展示 ...