热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SaltStack(二)远程执行

SaltStack----远程执行1远程执行shell命令2base路径和YAML语法3配置管理3.1单个sls文件的编写3.2apache的安装配置启动sls文件4编写远程执行模

SaltStack----远程执行

  • 1 远程执行shell命令
  • 2 base路径和YAML语法
  • 3 配置管理
    • 3.1 单个sls文件的编写
    • 3.2 apache的安装配置启动sls文件
  • 4 编写远程执行模块


1 远程执行shell命令

(1)Salt命令由三个主要部分构成:salt '' [arguments]

  • target: 指定哪些minion

    默认使用glob匹配minion id:salt '*' test.ping使用正则表达式:salt -E 'server[2-3]' test.ping可以指定列表:salt -L 'server2,server3' test.ping

在这里插入图片描述

  • funcation:是module提供的功能,Salt内置了大量有效的functions
    查看minion的hostname: salt '*' cmd.run hostname
    在这里插入图片描述
    server2是否安装httpd:salt server2 cmd.run 'rpm -q httpd'
    在这里插入图片描述

  • arguments:通过空格来界定参数
    查看pkg模块文档:salt 'server3' sys.doc pkg
    在这里插入图片描述
    查看pkg模块的install:salt 'server2' sys.doc pkg|grep pkg.install
    在这里插入图片描述
    server2安装httpd:salt server2 pkg.install httpd
    在这里插入图片描述
    salt server2 cmd.run ‘rpm -q httpd’
    在这里插入图片描述

(2)将master端的文件复制到minion
在这里插入图片描述

salt-cp server2 index.html /var/www/html

在这里插入图片描述
在这里插入图片描述

salt server2 file.stats /var/www/html/index.html

在这里插入图片描述

2 base路径和YAML语法

(1) 查看master的配置文件:vim /etc/salt/master

在这里插入图片描述

  • 默认的base目录是:/srv/salt/
  • 进入 /srv/目录发现salt子目录并不存在,创建/srv/salt/

cd /srvmkdir salt

在这里插入图片描述
(2)YAML语法

SaltStack是使用的YAML语言来将sls文件解释成它自己可以识别的内容

缩进:Salt需要每个缩进级别由两个空格组成,不要使用tabs冒号:字典的keys在YAML中的表现形式是一个以冒号结尾的字符串my_key: my_value短横杠:表示列表项,使用一个短横杠加一个空格- list_value_one- list_value_two

3 配置管理

SLS表示系统将会是什么样的一种状态,而且是以一种很简单的格式来包含这些数据,常被叫做配置管理。
sls文件命名:

sls文件以”.sls”后缀结尾,但在调用是不用写此后缀。使用子目录来做组织是个很好的选择init.sls 在一个子目录里面表示引导文件,也就表示子目录本身, 所以``apache/init.sls`` 就是表示``apache``.如果同时存在apache.sls 和 apache/init.sls,则 apache/init.sls 被忽略,apache.sls将被用来表示 apache.

3.1 单个sls文件的编写

(1) 安装软件

cd /srv/salt/
mkdir appache
vim install.sls ##创建sls文件

  • 方法一

httpd: ##ID声明pkg.installed ##状态和函数声明

  • 方法二

apache:pkg.installed:- name: httpd ##安装httpd

  • 方法三

apache:pkg.installed: ##安装多个软件可以使用列表- pkgs:- httpd- php

(2) 将master端的文件复制到minion端

mkdir /srv/salt/apache/files ##用于存放apache的配置文件模板
cp ~/index.html /srv/salt/apache/files ##将index.html文件放到/srv/salt/apache/files目录
vim /srv/salt/apache/install.sls

/var/www/html/index.html:##存放到minion的路径file.managed:- source: salt://apache/files/index.html ##master的源文件

  • salt server2 sys.doc state.sls apache.install
    在这里插入图片描述
  • 执行完命令后可以看到master端的base目录将会同步到minion:cd /var/cache/salt/
    在这里插入图片描述
    在这里插入图片描述
    md5sum命令用于生成和校验文件的md5值。它会逐位对文件的内容进行校验。是文件的内容,与文件名无关,也就是文件内容相同,其md5值相同。md5值是一个128位的二进制数据,转换成16进制则是32(128/4)位的进制值
    在这里插入图片描述
    在这里插入图片描述
    更改index.html文件的内容,md5的值也会改变
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

(3)httpd服务的启动

  • 编辑sls文件:vim /srv/salt/apache/install.sls

httpd:service.running

在这里插入图片描述

3.2 apache的安装配置启动sls文件


  • 编辑sls文件:vim /srv/salt/apache/install.sls

apache:pkg.installed: ##安装软件- pkgs:- httpd- phpfile.managed: ##apache的配置文件- source: salt://apache/files/index.html- name: /var/www/html/index.htmlservice.running: ##服务的启动- name: httpd- enable: true- watch:- file: /etc/httpd/conf/httpd.conf##监控文件是否有改变
/etc/httpd/conf/httpd.conf:file.managed:- source: salt://apache/files/httpd.conf

  • 执行sls文件 salt server2 sys.doc state.sls apache.install

在这里插入图片描述
在这里插入图片描述

  • init.sls引导文件

mv install.sls init.sls
salt server2 state.sls apache

salt server2 sys.doc state.sls apache
在这里插入图片描述

4 编写远程执行模块

shell执行远程命令:salt server2 cmd.run df

在这里插入图片描述
(1) 创建模块目录:mkdir /srv/salt/_modules
(2) 编写模块文件:vim /srv/salt/_modules/mydisk.py

def df():return __salt__['cmd.run']('df -h')

(3) 同步模块:salt server2 saltuil.sync_modules,模块将会同步到minion
在这里插入图片描述
(4) 运行模块:salt server2 mydisk.df
在这里插入图片描述


推荐阅读
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 在维护公司项目时,发现按下手机的某个物理按键后会激活相应的服务,并在屏幕上模拟点击特定坐标点。本文详细介绍了如何使用ADB Shell Input命令来模拟各种输入事件,包括滑动、按键和点击等。 ... [详细]
  • 本文详细介绍了 Kubernetes 集群管理工具 kubectl 的基本使用方法,涵盖了一系列常用的命令及其应用场景,旨在帮助初学者快速掌握 kubectl 的基本操作。 ... [详细]
  • 在Win10上利用VS2015构建Caffe2环境
    本文详细介绍如何在Windows 10操作系统上通过Visual Studio 2015编译Caffe2深度学习框架的过程。包括必要的软件安装、环境配置以及常见问题的解决方法。 ... [详细]
  • Windows环境下部署Kubernetes Dashboard指南
    本指南详细介绍了如何在Windows系统中部署Kubernetes Dashboard,包括下载最新配置文件、修改服务类型以支持NodePort访问、下载所需镜像并启动Dashboard服务等步骤。 ... [详细]
  • 应用场景在开发中,我们经常需要把一些随时可能变化的属性配置到配置文件中,这样耦合性低,方便维护。SpringBoot在这方面为我们提供了很大的便捷,我们可以很轻易的将propert ... [详细]
  • 手把手教你构建简易JSON解析器
    本文将带你深入了解JSON解析器的构建过程,通过实践掌握JSON解析的基本原理。适合所有对数据解析感兴趣的开发者。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 本文详细记录了在基于Debian的Deepin 20操作系统上安装MySQL 5.7的具体步骤,包括软件包的选择、依赖项的处理及远程访问权限的配置。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 在 Swift 编程中,遇到错误提示“一元运算符 '!' 不能应用于 '()' 类型的操作数”,通常是因为尝试对没有返回值的方法或函数应用逻辑非运算符。本文将详细解释该错误的原因,并提供解决方案。 ... [详细]
  • 尽管使用TensorFlow和PyTorch等成熟框架可以显著降低实现递归神经网络(RNN)的门槛,但对于初学者来说,理解其底层原理至关重要。本文将引导您使用NumPy从头构建一个用于自然语言处理(NLP)的RNN模型。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有