SaltStack基础入门

目录

1:自动化运维可以实现的功能-----------------------------------------1

2:自动化发展的阶段-------------------------------------------------2

3:saltstack三大功能------------------------------------------------3

4:salt三种运行模式-------------------------------------------------4

5:salt支持的系-----------------------------------------------------5

6:安装配置saltstack(master端)------------------------------------6

7:安装配置saltstack(monion端)------------------------------------7

8:salt-key命令的使用-----------------------------------------------8

9:saltstack远程执行命令--------------------------------------------9

1:自动化运维可以实现的功能

(0)需求分析

(1)机房设备上下架

(2)系统初始化

(3)应用环境初始化

(4)应用的部署调试  配置……………….(saltstack)

(5)代码的发布(jenkins + ant + svn)

(6)服务监控应用

(7)数据备份

虚拟化的优势:弹性,扩展性,充分利用硬件资源。

2:自动化发展的阶段

1、标准化的制定,软件环境版本的统一。

如果想做自动化必须要制定标准化,不然会产生很多问题。

2、文档化:将搭建文档进行标准化

2、工具化:使用统一的工具进行管理

3、web

4、平台化

5、服务化

6、智能化

3:saltstack三大功能

1.远程执行

2.配置管理

3.云管理

4:salt三种运行模式

(1)local(本地,一台机器玩耍,不建议)

(2)Master、Minion(通过server/agent的方式进行管理)1000台机器 25秒搞定

(3)Salt SSH (通过SSH方式进行管理,效率很低)1000台机器 83秒搞定

在这里有必要提一下salt的云管理,salt拥有强大的云管理功能,更支持如阿里云、亚马逊等一系列公有云的管理,so以后在创建阿里云主机的时候,就可以不需要登录相关账号密码,只需要一条命令即可创建。此外salt对openstack支持的也相当不错,同样能够管理openstack创建的虚拟机

5:salt支持的系统

从官网来看salt支持的系统有很多,如下所示

CentoS,RedHat,Fedora,Gentoo,Debian,MAC OS X,Ubutun,suse,freeBSD,OpenBSD

不过有必要提一点salt对Windows支持可能不太好,并且没有Windows的master端,因此十分不建议大家在windows上使用salt

6:安装配置saltstack(master端)


1.安装saltstack需要配置epel源

wget -O /etc/yum.repos.d/epel.repo

http://mirrors.aliyun.com/repo/epel-6.repo

yum repolist

2.安装master管理端

yum install salt-master -y

rpm -qa salt-master

3.设置saltstack开机自动启动

chkconfig salt-master on

4.配置/etc/salt/master文件

[[email protected] ~]# vim /etc/salt/master

-------#修改位置1

file_roots:        将此处的注释取消     (406行)

base:         前面必须有两个空格    (407行)

–/srv/salt    前面必须有四个空格    (408行)

-------#修改位置2

pillar_roots:        将此处的注释取消    (529行)

base:              前面必须有两个空格    (530行)

- /srv/pillar   前面必须有四个空格

5.将saltstack服务启动

[[email protected] ~]# /etc/init.d/salt-master start

Starting salt-masterdaemon:                  [  OK  ]

7:安装配置saltstack(monion端)

1.安装saltstack需要配置epel源

wget -O /etc/yum.repos.d/epel.repo

http://mirrors.aliyun.com/repo/epel-6.repo

yum repolist

2.安装minion客户端

yum install salt-minion -y

rpm -q salt-minion

3.配置/etc/salt/minion文件

[[email protected] /]# vim /etc/salt/minion

# Set the location of the salt master server. Ifthe
master server cannot be

# resolved, then the minion will fail to start.

master: 172.16.1.61 将此行取消注释,并填写master管理端的IP地址(16行),冒号前必须空格

# Explicitly declare the id for this minion to use,
if left commented the id

# will be the hostname as returned by the python
call: socket.getfqdn()

# Since salt uses detached ids it is possible torun
multiple minions on the

# same machine but with different ids, this can be
useful for salt compute

# clusters.

id: web01     将此行取消注释,这里是本机在管理端显示的名称(第78行 冒号前必须空格

当然要想简单也可以采用如下方法

sed -i ‘17i master: 172.16.1.61‘ /etc/salt/minion

sed -i ‘78i id: web01‘ /etc/salt/minion


4.设置saltstack客户端开机自启动

chkconfig salt-minion on

chkconfig --list salt-minion

5.将minion服务进行启动

[[email protected] ~]# /etc/init.d/salt-minion start

Starting salt-miniondaemon:                      [  OK  ]


6.当我们回到master管理端执行salt-key命令就可以看到被找到的客户端

[[email protected] ~]# salt-key

Accepted Keys:

Denied Keys:

Unaccepted Keys:

web01

Rejected Keys:

以上结果显示,等待管理的主机有web01

8:salt-key命令的使用

常见参数:


参数


解释


-A


同意并接受全部主机


-a


指定接收的主机,支持通配符操作


-D


删除全部已被管理主机(但是不建议这么做)


-d


指定主机,不在管理的指定主机

这里我们使用-A参数,同意并管理saltstack的所有客户端的主机

[[email protected] ~]# salt-key -A

The following keys are going to be accepted:

Unaccepted
Keys:

web01

Proceed? [n/Y] Y         这里配置选择同意

Key for minion web01 accepted.

[[email protected] ~]# salt-key     当我们再次查看的时候就会发现已经被管理

Accepted
Keys:

web01                 表示已经被saltstack

master端管理

Denied Keys:

Unaccepted Keys:

Rejected Keys:

状态说明:


主机状态


中文解释


Unaccepted Keys:


未被接受或同意的主机key


Denied Keys:


已经被拒绝的主机key


Rejected Keys:


明确拒绝的key,主接收任何通信


Accepted Keys:


已经同意被管理的主机key

9:saltstack远程执行命令


命令简单语法:salt “目标” 模块.方法 “命令”


--------增加一台机器,web02


一:检查主机存活状态

下面我们来执行第一个远程命令(利用test模块来ping以下是否成功管理)

[[email protected] ~]# sasalt "*" test.ping

web01:

True

web02:

True

salt“*” test.ping    #注意这里支持通配符哦,*表示所有,当然依旧也可以指定主机,在这里面test表示模块而ping则是方法。注意这里面的ping可不是Linux里面ICMP协议的ping是salt自己独有的东西,True表示成功


二:批量执行命令

查看所有被管理端的磁盘利用率(批量执行命令)

[[email protected]/]# salt "*" cmd.run "df -h"

web01:

Filesystem      Size  Used   Avail  Use%  Mounted on

/dev/sda3      6.2G  1.5G4   4G    26%    /

tmpfs           242M  12K    242M   1%   /dev/shm

/dev/sda1      190M  36M    145M   20%   /boot

web02:

Filesystem      Size   Used  Avail   Use%   Mounted on

/dev/sda3      6.2G   1.5G  4.4G    26%    /

tmpfs           242M   12K   242M    1%     /dev/shm

/dev/sda1      190M   36M   145M    20%    /boot

通过远程执行命令查看客户端的内存使用情况

[[email protected]/]# salt "*" cmd.run "free -h"

web01:

total    used    free   shared    buffers     cached

Mem:       475M     313M    161M    236K     19M       198M

-/+ buffers/cache:     95M     379M

Swap:     767M     0B     767M

web02:

total    used     free   shared    buffers     cached

Mem:       475M     316M     159M    236K      22M       198M

-/+ buffers/cache:     95M      379M

Swap:      767M     0B      767M

salt"*" cmd.run "free -h"  #其中cmd为模块,而run是方法df -h则是传入的参数.此时就能够返回各个主机的磁盘使用情况。cmd下的run方法后面可以接任何shell参数。因此这个模块非常之强大。


二:批量传输复制文件

[[email protected] /]# salt-cp "*" /test.txt /

‘web01‘:{‘/test.txt‘: True},

‘web02‘:{‘/test.txt‘: True}}

salt-cp "*" /test.txt /  #这是批量执行拷贝传输文件的命令,是将master的test.txt文件复制到所有monion端的根(/)下‘/test.txt‘: True 表示成功

----------------------------------------------------------------------

# 针对cmd.run这个模块这个缺点,不支持交互式的命令

[[email protected] ~]# salt “*” cmd.run “vim /etc/hosts”

时间: 2024-10-05 23:09:16

SaltStack基础入门的相关文章

saltstack之基础入门系列文章简介

使用saltstack已有一段时间,最近由于各种原因,特来整理了saltstack基础入门系列文章,已备后续不断查阅(俗话说好记性不如烂笔头),也算是使用此工具的一个总结.saltstack的前六篇文章主要讲述了saltstack的安装.远程执行.配置管理.数据系统以及jinjia模板等知识点,从第七篇往后的文章是一些使用saltstack的案例,包括系统初始化,rpm包以及源码安装等. 博客中saltstack系列的文章,适合初学者从零开始学习直到逐渐熟练使用.文章具有一定的连贯性,如果没有任

SaltStack实战之SaltStack快速入门

SaltStack实战之SaltStack快速入门 1. SaltStack介绍 1.1 SaltStack常用网址 1.2 SaltStack运行方式 1.3 SaltStack三大功能 2. SaltStack部署 2.1 SaltStack master配置 2.2 SaltStack minion配置 2.3 SaltStack认证 2.4 saltsatck远程执行 2.5 saltsatck配置管理 1. SaltStack介绍 Salt,一种全新的基础设施管理方式,部署轻松,在几分

Nginx Web 基础入门

目录 Nginx Web 基础入门 静态WEB软件 两种方式部署Nginx 如何升级nginx或者添加功能 使用systemd管理nginx nginx相关配置文件 nginx的配置文件详解 虚拟主机配置方案 方式1:基于IP(很少用) 方式2:基于端口(公司用,用于测试环节) 方式3:基于域名(生产环节) Nginx Web 基础入门 nginx简述 Nginx是一个开源且高性能.可靠的Http Web服务.代理服务. 开源: 直接获取源代码 高性能: 支持海量并发 可靠: 服务稳定 我们为什

Android基础入门教程——10.12 传感器专题(3)——加速度-陀螺仪传感器

Android基础入门教程--10.12 传感器专题(3)--加速度/陀螺仪传感器 标签(空格分隔): Android基础入门教程 本节引言: 本节继续来扣Android中的传感器,本节带来的是加速度传感器(Accelerometer sensor)以及 陀螺仪传感器(Gyroscope sensor),和上一节的方向传感器一样有着x,y,z 三个轴, 还是要说一点:x,y轴的坐标要和绘图那里的x,y轴区分开来!传感器的是以左下角 为原点的!x向右,y向上!好的,带着我们的套路来学本节的传感器吧

Android基础入门教程——8.1.3 Android中的13种Drawable小结 Part 3

Android基础入门教程--8.1.3 Android中的13种Drawable小结 Part 3 标签(空格分隔): Android基础入门教程 本节引言: 本节我们来把剩下的四种Drawable也学完,他们分别是: LayerDrawable,TransitionDrawable,LevelListDrawable和StateListDrawable, 依旧贴下13种Drawable的导图: 1.LayerDrawable 层图形对象,包含一个Drawable数组,然后按照数组对应的顺序来

Android基础入门教程——8.1.2 Android中的13种Drawable小结 Part 2

Android基础入门教程--8.1.2 Android中的13种Drawable小结 Part 2 标签(空格分隔): Android基础入门教程 本节引言: 本节我们继续来学习Android中的Drawable资源,上一节我们学习了: ColorDrawable:NinePatchDrawable: ShapeDrawable:GradientDrawable!这四个Drawable~ 而本节我们继续来学习接下来的五个Drawable,他们分别是: BitmapDrawable:Insert

Android基础入门教程——2.3.12 Date & Time组件(下)

Android基础入门教程--2.3.12 Date & Time组件(下) 标签(空格分隔): Android基础入门教程 本节引言: 本节我们来继续学习Android系统给我们提供的几个原生的Date & Time组件,他们分别是: DatePicker(日期选择器),TimePicker(时间选择器),CalendarView(日期视图),好吧, 其实一开始让我扣这几个玩意我是拒绝的,因为在我的印象里,他们是这样的: 简直把我丑哭了,有木有,终于知道为什么那么多人喜欢自定义这种类型的

Android基础入门教程——2.1 View与ViewGroup的概念

Android基础入门教程--2.1 View与ViewGroup的概念 标签(空格分隔): Android基础入门教程 本节引言: 告别了第一章,迎来第二章--Android中的UI(User Interface)组件的详解, 而本节我们要学习的是所有控件的父类View和ViewGroup类!突发奇想,直接翻译官方文档对 这两个东西的介绍吧,对了,天朝原因,google上不去,Android developer上不去,我们可以 改hosts或者用vpn代理,当然也可以像笔者一样使用国内的API

DAX基础入门 – 30分钟从SQL到DAX — PowerBI 利器

看到漂漂亮亮的PowerBI报表,手痒痒怎么办?! 有没有面对着稀奇古怪的DAX而感到有点丈八金刚摸不着头脑或者干瞪眼?! 有没有想得到某个值想不出来DAX怎么写而直跳脚!? 看完这篇文章,你会恍然大悟,捂脸偷笑.呼呼呼~ 前言: 这篇文章对于具有一点SQL查询基础人会十分容易理解,譬如:掌握SELECT,SUM,GROUP BY等. 注:此文不涉及到Filter Context(筛选上下文)的介绍. 正文: 对于对SQL有一定了解的人来说,咋看DAX,怎么都不习惯. 但是,如果理解以下几个后,