文档章节

saltstack 管理

Jalo
 Jalo
发布于 2016/03/09 11:43
字数 983
阅读 141
收藏 0

    各位不好意思,由于工作比较忙,saltstack没有及时更新。      

上一篇讲解了saltstack的安装以及配置这是比较简单的说明。我们来学习使用它,在开始使用它前先说明一下它的基本组成。 saltstack是沿用python的概念,全是模块化。他有module、grains、pillar、state等主要模块;

这周我们一起来学习module模块:首先先介绍一下cmd模块,这个模块有以下函数:

exec_code(lang, code, cwd = None)

在大多数情况下使用前两种参数:第一个参数是你系统中的语言例如:python ruby等,第二个参数是你要执行的代码,把执行的结果通过标准输出显示出来

例如:

salt "*" cmd.exec_code python "print '123'"

结果为:

exec_code_all(lang, code, cwd = None):

这个函数的参数和上一个函数的参数一样,功能一样,就是返回值不同,返回执行后的所有状态

例如:

salt "*" cmd.exec_code_all python "print '123'"

结果为:

has_exec(cmd):

这个函数是验证shell中的命令是否在minion上能执行,返回结果为True否则false,参数为可执行文件

例如:

salt "*" has_exec cat

例如:

run(cmdcwd=Nonestdin=Nonerunas=Noneshell='/bin/sh',python_shell=Noneenv=Noneclean_env=Falsetemplate=Nonerstrip=Trueumask=None,output_loglevel='debug'log_callback=Nonetimeout=Nonereset_system_locale=Trueignore_retcode=False,saltenv='base'use_vt=False**kwargs)

这个函数参数比较多,只介绍常用的参数

cmd                命令参数

cwd                当前目录下执行命令  默认为  /root

stdin               可以代替标准输入的输入

例如:

salt 'app' cmd.run "ls -l / | awk '{print \$2}'"

salt 'app' cmd.run template=jinja "ls -l /tmp/{{grains.id}} | awk '{print \$2}'"

在这里的template是一个jinjia模版引用 grains.id 在这里知道代表的是 app就行了

对于cmd模块来说就讲解到这个地方:具体的请查看

https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.cmdmod.html

我们来看看salt是怎么管理我们的ssh-key

使用ssh.auto_keys  来管理我们的key

ssh.auto_keys(user = None, config = ''.ssh/authorized_keys)

user 代表用户

config  代表存储ssk值的文件

 salt "app" ssh.auth_keys root

我们怎么样来管理文件呢?

salt给我们很好的解决方案 例如:

file模块是管理有关常规文件信息,目录、minion上的特殊文件,设置/读取 用户 组 模式 数据

1、file.access(path, mode)

这个函数讲解的是在该目录中是否存在某文件/某目录  mode (f 文件/目录是否存在,r 是否可读,w是否可写,x是否可执行)

例如:先手工在app /tmp下创建test目录和app文件

salt "app" file.access /tmp/test f

它的mode参数 你可以根据自己的需求来测试

append(path, *args, **kargv)

这个函数是说把文本追加到文本文件的尾部

例如:在app上创建一个文件

salt "app" file.append /tmp/app "123\n123"
salt "app" file.append /tmp/app "123\r123"
salt "app" file.append /tmp/app "123" "123"

结果:

如果你要追加一个包含有=号的字符串,你必须包括参数名称args

注意在使用args=“string”等号前后一定不要有空格

例如:

salt "app" file.append /tmp/app args = "cheese=spam"
salt "app" file.append /tmp/app args='cheese=spam'
salt "app" file.append /tmp/app args="['cheese=spam','spam=cheese']"

执行结果:

查看app文件上的文件结果:

在cmd模块中还有很多的函数,例如chgrp  chown等函数

地址:https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.file.html

如果想用使用某个模块但又不知道怎么使用。

可以使用: 

表示  查看某个模块和函数的使用方法,也可以使用模块

salt "app" sys.doc cmd.chgrp          

ss










© 著作权归作者所有

共有 人打赏支持
Jalo
粉丝 0
博文 4
码字总数 2798
作品 0
朝阳
私信 提问
运维之我的saltstack短篇教程

下面是之前写过的一些有关saltstack的文章 SaltStack使用教程(一):安装并简单配置使用 SaltStack使用教程(二):文件和目录管理 SaltStack使用教程(三):定时任务管理cron.present Sa...

qq850900633
2017/01/23
0
0
centos7下yum源安装saltstack

SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,一般可以理解为简化版的puppet和加强版的func。SaltStack基于Python语言实现,结合轻量级消息队列(Zer...

笨鸟晚
2018/06/26
0
0
关于运维自动化工具saltstack的教程更新页面

saltstack的稳当写了不少,但是有点乱,现在把saltstack的教程归类在一起,方便大家查看,也方便自己 ! 自己写的教程,更像是 一个个的实例,而不是每个功能及模块的使用说明,后期再写的时...

rfyiamcool
2014/02/10
0
0
自动化运维工具之Saltstack

一、简介 what is Saltstack? Saltstack是一个具备puppet与func功能为一身的集中化管理平台,saltstack基于python实现,功能十分强大,适合大规模批量管理服务器,并且它比 Puppet 更容易配置...

SoulMio
2017/11/22
0
0
快速入门SaltStack

而且采用RSA Key方式确认身份,传输采用AES加密,这使得它的安全性得到了保障。SaltStack经常被描述为Func加强版+Puppet精简版。 为什么选择SaltStack? 目前市场上主流的开源自动化配置管理...

linuxprobe
2016/09/10
22
0

没有更多内容

加载失败,请刷新页面

加载更多

day11

architect刘源源
32分钟前
2
0
论学好Linux系统的超级重要性

不知道各位在日常的工作生活中有没有接触过“rm -rf /*”这个命令,因为这个命令搞出来的事情可还不少呢!前段时间就在一个群里看到了有个小伙子,老板让他去维护一下服务器,这小伙也不太懂...

Linux就该这么学
昨天
1
0
git 使用

1,首先在github配置好信息和仓库,然后在本地进行操作 git init git config user.name 'zhangwuer' git config user.email '56789053@qq.com' 2,与远程分支建立连接 git checkout -b test......

天王盖地虎626
昨天
3
0
git checkout 命令详解

在日常的git操作中,git checkout——检出,是我们的常用命令。最为常用的两种情形是创建分支和切换分支。 在下面的命令中,使用了一些简写,在这里说明一下: git st # git statusgit ci ...

shzwork
昨天
8
0
【Nginx】Nginx多级代理,获取客户端真实请求IP以及每级代理IP

Nginx多级代理,获取客户端真实请求IP以及每级代理IP 如图所示,每一级nginx里的location配置里需要加上对应的配置,最后一级nginx是直接到应用,测试时为了方便,直接用echo模块去测试,打印...

薛定谔的旺
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部