热门标签 | 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
在这里插入图片描述


推荐阅读
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了Linux系统中init进程的作用及其启动过程,解释了运行级别的概念,并提供了调整服务启动顺序的具体步骤和实例。通过了解这些内容,用户可以更好地管理系统的启动流程和服务配置。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 作为一名新手,您可能会在初次尝试使用Eclipse进行Struts开发时遇到一些挑战。本文将为您提供详细的指导和解决方案,帮助您克服常见的配置和操作难题。 ... [详细]
  • 本文介绍了如何使用PHP代码实现微信平台的媒体素材上传功能,详细解释了API接口的使用方法和注意事项,确保文件路径正确以避免常见的错误。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 本文探讨了如何优化和正确配置Kafka Streams应用程序以确保准确的状态存储查询。通过调整配置参数和代码逻辑,可以有效解决数据不一致的问题。 ... [详细]
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社区 版权所有