saltstack 管理

    各位不好意思,由于工作比较忙,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'"

结果为:

saltstack 管理_第1张图片

has_exec(cmd):

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

例如:

salt "*" has_exec cat

例如:

saltstack 管理_第2张图片

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}'"

saltstack 管理_第3张图片

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

saltstack 管理_第4张图片

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

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

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

1、file.access(path, mode)

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

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

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

saltstack 管理_第5张图片

它的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"

saltstack 管理_第6张图片

结果:

saltstack 管理_第7张图片

如果你要追加一个包含有=号的字符串,你必须包括参数名称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']"

执行结果:

saltstack 管理_第8张图片

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

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

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

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

可以使用: 

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

salt "app" sys.doc cmd.chgrp          

ss










你可能感兴趣的:(模块,saltstack)