赞助商

saltstack之自动化运维

发布时间:2019-02-14 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了saltstack之自动化运维脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

引入

简介

  saltstack是由thomas Hatch于2011年创建的一个开源项目,设计初衷是为了实现一个快速的远程执行系统。

  早期运维人员会根据自己的生产环境来写特定脚本完成大量重复性工作,这些脚本复杂且难以维护。系统管理员面临的问题主要是1、系统配置管理,2、远程执行命令,因此诞生了很多开源软件,系统维护方面有fabric、puppet、chef、ansible、saltstack等,这些软件擅长维护系统状态或方便的对大量主机进行批量的命令执行。

  salt灵活性强大,可以进行大规模部署,也能进行小规模的系统部署。salt的设计架构适用于任意数量的服务器,从少量本地网络系统到跨越数个数据中心,拓扑架构都是c/s模型,配置简单。

  不管是几台、几百台、几千台服务器,都可以使用salt在一个中心节点上进行管控,灵活定位任意服务器子集来运行命令。 

  Salt是python编写的,支持用户通过python自定义功能模块,也提供了大量的python API接口,用户可以根据需要进行简单快速的扩展。

saltstack的运维方式

  • Local  本地运行,交付管理
  • Master/Minion (常用方式 )
  • Salt SSH   不需要客户端

salt基本架构

  在安装salt之前,先理解salt架构中各个角色,主要区分是salt-master和salt-minion,顾名思义master是中心控制系统,minion是被管理的客户端。

  salt架构中的一种就是master > minion。

服务器环境准备

<table border="0">
<tr>
<td>服务器环境</td>
<td>centos7(master)</td>
<td>centos7(master)</td>
</tr>
<tr>
<td>

ip地址

</td>
<td>192.168.178.131</td>
<td>192.168.178.132</td>
</tr>
<tr>
<td>

身份

</td>
<td>master</td>
<td>slave</td>
</tr>
<tr>
<td>

软件包

</td>
<td>salt-master</td>
<td>salt-minion</td>
</tr>
</table>

关闭服务器安全策略

<div class="cnblogs_code">



iptables -

安装saltstack

注意:salt软件包需要epel源的支持, 如果没有安装epel源 <>有教程

在 192.168.178.131 中安装salt-master

<div class="cnblogs_code">

yum install salt-master -y

另一台安装salt-minion

<div class="cnblogs_code">

yum install salt-minion -y

salt端口

安装好salt之后开始配置,salt-master默认监听两个端口:

<div class="cnblogs_code">

4505   publish_port 
4506   ret_port     

配置文件

<div class="cnblogs_code">

salt-master的配置文件是/etc/salt/master  
salt-minion的配置文件是/etc/salt/minion  

写入salt-master配置文件如下:

<div class="cnblogs_code">

interface: 0.0.0.0  
publish_port: 450554506/var/run/salt-/var/log/salt/


<div class="cnblogs_code" onclick="cnblogs_code_show('b348767e-555a-46f0-8317-20f56c6b0a01')">
<img id="code_img_closed_b348767e-555a-46f0-8317-20f56c6b0a01" class="code_img_closed" src="
https://www.jb51.cc/res/2019/02-14/22/1c53668bcee393edac0d7b3b3daff1ae.gif" alt=""><img id="code_img_opened_b348767e-555a-46f0-8317-20f56c6b0a01" class="code_img_opened" style="display: none;" onclick="cnblogs_code_hide('b348767e-555a-46f0-8317-20f56c6b0a01',event)" src="https://www.jb51.cc/res/2019/02-14/22/405b18b4b6584ae338e0f6ecaf736533.gif" alt=""><div id="cnblogs_code_open_b348767e-555a-46f0-8317-20f56c6b0a01" class="cnblogs_code_hide">



worker_threads: 10


publish_port : 4505


ret_port : 4506


syndic_master_port : 4506


pidfile: /var/run/salt-master.pid


<span class="cnblogs_code_collapse">salt-master配置参数详解

写入sale-master配置文件如下:

<div class="cnblogs_code">

master: 192.168.178.132  
master_port: 4506
acceptance_wait_time: 10/var/log/salt/minion


<div class="cnblogs_code" onclick="cnblogs_code_show('9f5e9a38-8ad0-41f9-acb9-99baf784425d')">
<img id="code_img_closed_9f5e9a38-8ad0-41f9-acb9-99baf784425d" class="code_img_closed" src="https://www.jb51.cc/res/2019/02-14/22/1c53668bcee393edac0d7b3b3daff1ae.gif" alt=""><img id="code_img_opened_9f5e9a38-8ad0-41f9-acb9-99baf784425d" class="code_img_opened" style="display: none;" onclick="cnblogs_code_hide('9f5e9a38-8ad0-41f9-acb9-99baf784425d',event)" src="https://www.jb51.cc/res/2019/02-14/22/405b18b4b6584ae338e0f6ecaf736533.gif" alt=""><div id="cnblogs_code_open_9f5e9a38-8ad0-41f9-acb9-99baf784425d" class="cnblogs_code_hide">





master_port: 4506




acceptance_wait_time: 10



random_reauth_delay: 60


log_file: /var/logs/salt_minion.log


<span class="cnblogs_code_collapse">salt-minion配置参数详解

启动

<div class="cnblogs_code">


systemctl start salt-master  
systemctl status salt-master  

====================================


systemctl start salt-minion  
systemctl status salt-minion  

注意:如果启动报错,查看是否有 /var/log/salt/ 这个文件

在master上接收minion密钥

在minion启动后连接master会请求master为其签发证书,等待证书签发完成后,master可以信任minion,并且minion和master之间的通信是加密的。

在salt-master执行

salt-key命令用于管理mionion秘钥

<div class="cnblogs_code">

[root@master ~]

Rejected Keys:

此时slave已经出现在unaccepted keys中,说明minion已经和master联系,并且master已经获取了minion的公钥,等待下一步指令。

密钥匹配

在master上执行:

<div class="cnblogs_code">

[root@master ~]
97:b5:9a:65:b8:49:a1:50:a5:6a:66:ce:33:ea

然后在minion上获取密钥:

<div class="cnblogs_code">

[root@slave ~]
97:b5:9a:65:b8:49:a1:50:a5:6a:66:ce:33:ea

此时可确认密钥匹配,在master上接收密钥

<div class="cnblogs_code">

[root@master ~]
/ minion slave accepted.

确认接收秘钥后,检验minion秘钥是否被接收

<div class="cnblogs_code">

[root@master ~]

好了,配置完成,可以执行命令了。

常用命令

salt-key

只有master接收了minion key后才能进行管理。

<div class="cnblogs_code">

[root@master ~]
Accepted Keys:  
Denied Keys:    
Unaccepted Keys:
Rejected Keys:


-L  
-A  
-D  
-a  
-d  
-r  


auto_accept: True   

常用命令参数:

<div class="cnblogs_code" onclick="cnblogs_code_show('faf7bfc3-339f-464a-9bd2-6cb29bbccce9')">
<img id="code_img_closed_faf7bfc3-339f-464a-9bd2-6cb29bbccce9" class="code_img_closed" src="https://www.jb51.cc/res/2019/02-14/22/1c53668bcee393edac0d7b3b3daff1ae.gif" alt=""><img id="code_img_opened_faf7bfc3-339f-464a-9bd2-6cb29bbccce9" class="code_img_opened" style="display: none;" onclick="cnblogs_code_hide('faf7bfc3-339f-464a-9bd2-6cb29bbccce9',event)" src="https://www.jb51.cc/res/2019/02-14/22/405b18b4b6584ae338e0f6ecaf736533.gif" alt=""><div id="cnblogs_code_open_faf7bfc3-339f-464a-9bd2-6cb29bbccce9" class="cnblogs_code_hide">

rpm -ql salt-/etc/salt/master      
/usr/bin/salt           
/usr/bin/salt-cp       
/usr/bin/salt-key    
/usr/bin/salt-master    
/usr/bin/salt-run          


<span class="cnblogs_code_collapse">master端

<div class="cnblogs_code" onclick="cnblogs_code_show('aa071d14-3445-4d8e-aaf0-a37002e6e091')">
<img id="code_img_closed_aa071d14-3445-4d8e-aaf0-a37002e6e091" class="code_img_closed" src="https://www.jb51.cc/res/2019/02-14/22/1c53668bcee393edac0d7b3b3daff1ae.gif" alt=""><img id="code_img_opened_aa071d14-3445-4d8e-aaf0-a37002e6e091" class="code_img_opened" style="display: none;" onclick="cnblogs_code_hide('aa071d14-3445-4d8e-aaf0-a37002e6e091',event)" src="https://www.jb51.cc/res/2019/02-14/22/405b18b4b6584ae338e0f6ecaf736533.gif" alt=""><div id="cnblogs_code_open_aa071d14-3445-4d8e-aaf0-a37002e6e091" class="cnblogs_code_hide">

rpm -ql salt-/etc/salt/minion     
/usr/bin/salt-call    
/usr/bin/salt-minion   
/usr/lib/systemd/system/salt-minion.service   


<span class="cnblogs_code_collapse">slave端

salt命令:

<div class="cnblogs_code">

[root@master ~]

~]$salt  test.fib 50  
[root@master ~]$salt  sys.list_modules  


<div class="cnblogs_code" onclick="cnblogs_code_show('db4e6038-81c3-442f-a4a8-2072035c9986')">
<img id="code_img_closed_db4e6038-81c3-442f-a4a8-2072035c9986" class="code_img_closed" src="https://www.jb51.cc/res/2019/02-14/22/1c53668bcee393edac0d7b3b3daff1ae.gif" alt=""><img id="code_img_opened_db4e6038-81c3-442f-a4a8-2072035c9986" class="code_img_opened" style="display: none;" onclick="cnblogs_code_hide('db4e6038-81c3-442f-a4a8-2072035c9986',event)" src="https://www.jb51.cc/res/2019/02-14/22/405b18b4b6584ae338e0f6ecaf736533.gif" alt=""><div id="cnblogs_code_open_db4e6038-81c3-442f-a4a8-2072035c9986" class="cnblogs_code_hide">

[root@master ~]$salt ------------------------------ test.versions_report


<span class="cnblogs_code_collapse">test其他函数

cmd运行命令:

<div class="cnblogs_code">


[root@master ~]$salt  cmd.run  

pkg安装命令:

<div class="cnblogs_code">


[root@master ~]$salt  pkg.install 

[root@master ~]$salt  pkg.remove 

[root@master ~]$salt  pkg.version 

service管理服务模块:

<div class="cnblogs_code">

[root@master ~]$salt  service.start   
[root@master ~]$salt  service.status   
[root@master ~]$salt  service.stop   

--out 控制salt命令结果输出的格式:

<div class="cnblogs_code">


[root@master ~]$salt --out=json  cmd.run_all   


<div class="cnblogs_code">


[root@master ~]$salt --out=yaml  cmd.run_all   

总结

以上是脚本之家为你收集整理的saltstack之自动化运维全部内容,希望文章能够帮你解决saltstack之自动化运维所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:76874919,请注明来意。
标签:
猜你在找的sysTemd相关文章
其他相关热搜词更多
gitSVNgithubsvn教程tortoisegisvn类内置svn函数svn版本HBuildergit自动部署调用SVN命令ctype_digigiteempvue开发gmpvue开发ggithub预览Node.js搭建git安装docsifytagit
全站导航更多
最新sysTemd教程
热门sysTemd教程