位置: 编程技术 - 正文

Saltstack快速入门简单汇总(saltstack安装)

编辑:rootadmin

推荐整理分享Saltstack快速入门简单汇总(saltstack安装),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:saltstack安装,saltstack部署,saltstack架构,saltstack agent,saltstack命令,saltstack命令,saltstack agent,saltstack agent,内容如对您有帮助,希望把文章链接给更多的朋友!

saltstack是使用python编写的开源自动化部署与管理工具,拥有良好的扩展性以及优秀的执行效率,配置简单,可以工作在多平台上,经常被描述为 Func加强版+Puppet精简版。

saltsatck优点:首先,速度快,基于消息队列+线程,跑完多台设备,都是毫秒级别的;其次,非常灵活,源码是python,方便理解和自定义模块;最后,命令简单,功能强大。

前言:在很久以前,只有几台主机的时候当然不需要什么自动糊工具,但是随着硬件成本越来越低廉的今天,随随便便就好几十台服务器,靠手工不是搞不定,但是反复的重复着没有太多技术的操作一定会让人抓狂的的,所以有必要选择一个可以批量操作部署的自动化工具,诸如Pupet,ansible,rundeck,faric之类的工具不少少,碍于水平有限,暂时就saltstack稍微溜一点,简单汇总一下基本的概念,操作等。

参考环境centos6.5

安装:

最新的似乎是.8.1,如果用pip安装的话

master安装

Minion安装

如果开启防火墙的话,需要配置防火墙,参考 即上面的minion-id-1 minion-id-2 就是客户端的minion_id 默认是取得客户端的主机名,而minion-id是不能重复的!!!

注:如需更改需要在客户端修改/etc/salt/minion_id配置文件,此文件只有在salt-minion启动后才会生成

Salt-key常用命令

注:删除之后,如需重新认证,重启客户端即可

Salt配置文件

两个重要的配置参数是file_roots(定义环境的目录),nodegroups(定义组)

主要配置文件在/etc/salt/master(master端)

/etc/salt/minion(minion端)

注:master端配置文件默认是会加载所有/etc/salt/master.d/(此目录默认不存在,需自己创建)目录下的所有以.conf结尾的配置文件,为了更易阅读,我将所有的自定义参数每个单一的创建一个配置文件,如环境变量,可以分别设置生产,测试,开发环境,在往下分就是主机的应用级别分类,根据具体环境,具体设置。

如上述配置所述,一共定义了四个个环境,分别是base,apache,nginx,mysql等,环境变量的作用在下面会说到,主要是配合sls文件使用

不同环境的sls配置文件的目录分别放在对应的目录,比如base环境的sls文件,既可以放在/data/salt/base 也可以放在/data/salt/base/sls,其中sls文件是什么会在后面说到

接下来配置所有minion的分组信息,按照用途或者不同ip等分类信息分别定义组名

如上所述上面一共定义了四个组

注:注意上面的格式,salt几乎所有的配置文件遵循两个空格为一个递进的方式(即file_root下面空两个的都是它的参数,二它参数下面空两格的又是它参数的参数,后面写配置文件会更全面的介绍),而且不能用tab键补全!!!

Salt常用命令:

Salt语法

salt [客户端id,即目标] [模块名,如state,cmd。其实都是salt的模块] [动作]

接触saltstack的第一个salt命令一定是test.ping,主要用于探测客户端的存活状态

注:常用的两个模块主要是state,cmd两个模块,分别对应的功能就是state(状态,在后面会详细叙述,什么是状态),以及cmd(远程执行,而用到此模块的方法一般就是cmd.run)

首先介绍target,目标,或者说客户端id的匹配方式

True代表正常,没有响应当然代表客户端没有启动或者没有认证成功之类的。

指定目标主要有五种方式

一: Global,即salt默认的匹配方式,能识别终端常用的通配符,如*代表所有

如,salt '*' test.ping

二: List,列表,需-L指定。

如,salt -L 'foo,bar' test.ping 其中foo,bar是完整的minion_id

三:正则表达式,需-E指定。

如,salt -E 'pre[1-7]' test.ping 会匹配pre1,pre2..pre7,并且匹配到左右minion_id里面含有1-7的,如pre-,pre7也会匹配到,如果只匹配1-7可使用参照下面

如,salt -E ^pre[1-7]$ test.ping或者 salt pre[1-7] test.ping

四:混合模式,需-C指定。里面可以既有正则表达式也有列表等

salt -C "apache* or E@ngin*" test.ping 匹配所有tomcat开头,或者mon开头的

五:分组,需要-N指定,其中组名就是上面/etc/salt/master.d/groups.conf文件里面配置的配置信息。

如,salt -N apache test.ping

然后是模块,主要介绍state,cmd,cp模块

注:想了解某个模块的功能或者具体参数可以

salt * sys.doc [模块名,如cmd]

Saltstack快速入门简单汇总(saltstack安装)

即salt * sys.doc cmd 就会列出相关操作及示例了

远程命令执行

远程命令执行大概是最常用的操作的,比如获取所有minion端的ip地址,查看同一个目录下的文件,全部增加一条环境变量到/etc/profile文件里并刷新环境变量等等操作

cmd模块

主要用此模块的run方法,即cmd.run

使用方式如下,

salt * cmd.run 'ls /root'

如上所示,选择了所有的客户端,master端用cmd.run模块,把''里面的'ls /root'命令全部分发下去,其中单引号''也可以用双引号""代替,引号的作用就是把被引号的命令传给salt-master,然后master分发给所有的minion执行,上述命令就会列出所有minion端/root目录下的文件

注:引号里面的命令跟在任何一台机器上的命令没有任何区别,唯一的区别就是salt执行的命令默认用的是sh,而我们常用的shell是bash,比如bash中ll是ls ?l的别名,而sh里面是没有做ll的别名的,所以引号里面的命令如果用ll命令会提示找不到此命的

cmd有几个有用的参数,在可以着重介绍一下

cwd 定义命令所在的目录,即工作目录,在哪个目录执行操作如:

runas,定义执行此条命令的用户,使用哪个用户执行这条命令如:

然后去客户端就会发现,在/tmp/目录下有一个file文件,拥有者是nobody

然后就state模块了

主要用到的几个方法是sls,highstate,show_sls

在讲state模块的时候首先得了解sls文件。

Sls文件用.sls结尾,放在指定的环境目录下,即提到的/data/salt/base /data/salt/base/sls或者/data/salt/apache/sls等目录

注:假如在这两个目录下有两个一样的sls文件,那么会file_root配置的第一个环境目录,即

比如环境:

base:

会执行/data/salt/base里的sls文件,因为它在前一行

sls文件基本格式如下:

例子一

例子二

如上所示,其实例子一与例子二是达成了一样的效果,只不过写法不一样像例子一,因为没有- name: /tmp/ttt所以,它会去第一行的标识作为name,而例子二的testfile可以任意起名,只要不与该文件中的其他标识一样即可。

上面的例子达到的功能就是,将/srv/salt/files/tst文件复制到客户端的/tmp/ttt位置,如果存在则替换,如果已存在且一样则提示is correct state,即已经是正确的状态了。

然后就是top.sls

在每个独立的salt环境下有且只能有一个top.sls文件,这个文件为该环境的入口文件,里面记录了目标主机对应的sls文件如:

base:

minion-id-1:- test1- test2

minion-id-2:- test1- test3

以tomcat-1为例

它匹配了

- test1- test2

上面一共是一个2个sls配置文件,即匹配该环境下的test.sls,test2.sls文件所以在执行state模块的时候,它会去检索这些对应的配置文件并执行该配置文件里的内容。注:在前面提到过,这些参数前面的空格不能用tab键补全或者少写,不然会报错,再者就是如果配置文件为xxxx.sls 在调用这个配置文件的时候只要写xxxx,即它的文件名,没有后缀

以test1为例

功能就是调用file模块,将 mask码为,如果目标文件目录不存在就创建

现在回到highstate,sls,show_sls方法

执行如下

上面的意思依次是

1.在当前环境下寻找test.sls文件并执行

2.匹配当前环境的top.sls文件所有的sls文件并执行

3.查看当前环境test.sls文件的执行内容,但是不在客户端执行。

注:上面特别提到了是在当前环境,默认情况下,salt只会查找执行base环境下的sls文件,不会执行其他环境的配置文件,所以在不同环境下,需要指定要执行的配置环境,比如apache环境,只是执行apache的sls文件的话,则需声明saltenv=apache,如下

探究python中open函数的使用 最近,开始学习python的开发,遇到了一点文件操作的问题,探究一下open函数的使用。一、open()的函数原型open(file,mode=‘r',buffering=-1,encoding=None,errors=None,n

详解设计模式中的工厂方法模式在Python程序中的运用 工厂方法(FactoryMethod)模式又称为虚拟构造器(VirtualConstructor)模式或者多态工厂(PolymorphicFactory)模式,属于类的创建型模式。在工厂方法模式中,

实例讲解Python设计模式编程之工厂方法模式的使用 工厂方法模式是简单工厂模式的进一步抽象和推广,它不仅保持了简单工厂模式能够向客户隐藏类的实例化过程这一优点,而且还通过多态性克服了工

标签: saltstack安装

本文链接地址:https://www.jiuchutong.com/biancheng/383360.html 转载请保留说明!

上一篇:通过Python使用saltstack生成服务器资产清单(python saga)

下一篇:探究python中open函数的使用(python中的open)

  • 购买办公用品属于会计对象吗
  • 提取法定盈余公积是从净利润中提取吗
  • 个人从海外买东西自用要交税吗
  • 母公司吸收合并全资子公司土地增值税
  • 政府专项补助购置固定资产进项税可以抵扣吗?
  • 自产自销税点
  • 混合销售举例说明
  • 自然灾害造成的存货净损失计入什么科目
  • 售后回购的实质
  • 增值税纳税申报实训心得体会
  • 购进原材料影响营业利润吗
  • 员工离职再入职要重新签订合同吗
  • 分公司企业所得税怎么缴纳
  • 股权代持分红免税吗
  • 取得高新技术企业
  • 工程什么情况下可以索赔
  • 房地产企业收到的首付款要交税吗
  • 股权出售是利空还是利好
  • thinkphp微信公众号开发
  • 中秋节给员工买什么福利
  • 怎么区分债券折价还是溢价
  • 账簿启用及交接表样图
  • 企业对员工罚款的法律依据
  • 坎塔布莱恩
  • wordpress拿shell
  • php闭包和回调函数
  • 税控减免怎么做账
  • 捐资民办学校可以盈利吗
  • transformers document
  • 【第十一届“泰迪杯”数据挖掘挑战赛】B题产品订单的数据分析与需求预测“解题思路“”以及“代码分享”
  • npm ERR! code ERESOLVEnpm ERR! ERESOLVE could not resolve dependency
  • vue项目兼容ie9以上浏览器
  • 一文看懂华为新品发布会
  • 查补税款
  • 利润表年报本期金额填什么
  • 服务费减免税款怎么算
  • 以房租入股股份怎么计算
  • 织梦如何使用
  • 餐具报损率一般为多少
  • 罚款可以直接在12123
  • 税款要在15号前扣吗
  • 收伙食费入什么科目
  • 事业单位体检费标准是多少
  • 计提房产税土地使用税
  • 异地预缴的企业所得税
  • 发票申领多久才可以批
  • 实收资本的会计编码
  • 资产减值准备怎么理解
  • 企业哪些税费不通过应交税费账户进行核算
  • 已入库的原材料会计分录
  • 存货出售,资产减值损失如何处理
  • 购入自用的机器怎么入账
  • 饭店现金账怎么记账
  • 新冠肺炎疫情相关租金减让
  • 农业生态有限公司成立条件
  • 月末一次加权平均和移动加权平均的区别
  • 如何申请高新技术企业认定
  • mysql提高效率
  • sql查询字段值为汉字的
  • win7 光盘
  • macbook launch
  • win10系统资源
  • win8 重置
  • win7关机没反应怎么办
  • win7怎么禁用触摸屏
  • win7速度
  • win8.1技巧
  • linux 11
  • eclipse从本地导入项目
  • linux磁盘空间满了怎么办,硬盘空间还有很多
  • 详解linux设备
  • python动态加载py
  • 面向对象的知识
  • python编写一个模块
  • 请问3.3排量的汽车
  • 国外寄东西到国内要身份证号码吗
  • 国税手撕发票图片
  • 外经证核销在公司所在地还是在项目所在地
  • 单位纳税人什么意思
  • 贵州省税务局领导介绍
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设