各位不好意思,由于工作比较忙,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
(cmd, cwd=None, stdin=None, runas=None, shell='/bin/sh',python_shell=None, env=None, clean_env=False, template=None, rstrip=True, umask=None,output_loglevel='debug', log_callback=None, timeout=None, reset_system_locale=True, ignore_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