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


推荐阅读
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 负载均衡_Nginx反向代理动静分离负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分
    nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
  • Java如何导入和导出Excel文件的方法和步骤详解
    本文详细介绍了在SpringBoot中使用Java导入和导出Excel文件的方法和步骤,包括添加操作Excel的依赖、自定义注解等。文章还提供了示例代码,并将代码上传至GitHub供访问。 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • zabbix中文乱码的问题
    在使用zabbix时,有时候会出现中文乱码的问题,如下:因为zabbix自身对中文简体的支持不完善,需要我们手动的去上传新的字体进行替换:1、在windows获取字体库文件在Windows上的 ... [详细]
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社区 版权所有