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


推荐阅读
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社区 版权所有