公司动态
salt命令、使用pillar、使用state
目录一、常用模块、命令、执行1、列出所有salt的sys模块及某个模块的功能2、执行test模块下的ping方法3、cmd超级模块所有shell命令都能执行4、salt-run命令使用方式示例5、salt-key密钥管理通常在master端执行6、salt-call7、salt-cp8、salt-ssh9、查看采集的Grains二、pillar1.指定pillar_roots2.编辑pillar数据文件一、常用模块、命令、执行相关文档http://docs.saltstack.cn/contents.html1、列出所有salt的sys模块及某个模块的功能salt内置的执行模块列表http://docs.saltstack.cn/ref/modules/all/index.htmlsalt内置的执行模块列表参考https://docs.saltproject.io/en/latest/ref/modules/all/index.html#all-salt-modules[rootdev32~]# salt 192.168.180.48 sys.list_modules# 查看其中的cmd、test模块有哪些功能[rootdev32~]# salt 192.168.180.48 sys.list_functions cmd192.168.180.48:-cmd.exec_code...-cmd.retcode-cmd.run-cmd.run_all...-cmd.shell...-cmd.which-cmd.which_bin[rootdev32~]# salt 192.168.180.48 sys.list_functions test192.168.180.48:-test.arg-test.arg_clean...-test.ping...-test.version-test.versions-test.versions_report2、执行test模块下的ping方法# 指定一个minion[rootdev32~]# salt 192.168.180.48 test.ping192.168.180.48:True# 指定多个minions : -L:list,可指定多个minions多个minions之间用空格或者逗号隔开[rootdev32~]# salt -L 192.168.180.47 192.168.180.48 test.ping[rootdev32~]# salt -L 192.168.180.47,192.168.180.48 test.ping192.168.180.47:True192.168.180.48:True# 指定组来指定多个minions : 组配置放在 /etc/salt/master.d/group.conf[rootdev32~]# salt -N paas-test test.ping192.168.181.116:True192.168.181.118:True192.168.181.115:True192.168.181.117:True[rootdev32~]## 所有的minions[rootmanager110manager110]# salt * test.ping3、cmd超级模块所有shell命令都能执行[rootdev32~]# salt -L 192.168.180.47,192.168.180.48 cmd.run hostname192.168.180.47:test2192.168.180.48:test34、salt-run命令SaltStack 中的 salt-run 命令是一个用于执行 Salt 运行程序Runners的命令行工具。Runners 是一类特殊的 Salt 模块用于执行一些系统级别的操作或管理任务通常不直接涉及到对 Minion 的配置管理而是处理 Salt 控制节点Master上的全局任务。使用方式基本语法salt-run[options]runner_name.function_name[arguments]salt-run: 是运行 Salt Runners 的命令。runner_name: 是指定的 Salt 运行程序的名称。function_name: 是要调用的具体函数或操作。arguments: 是可选的参数用于传递给函数的输入。示例# 把salt-run的所有命令放入a.txt[rootdev32~]# salt-run a.txt#查看salt-run manage相关命令[rootdev32~]# salt-run manage比如 salt-run manage.status##查看所有minion状态salt-run manage.down##查看所有没在线minionsalt-run manage.up##查看所有在线minion5、salt-key密钥管理通常在master端执行salt-key[options]salt-key-L##查看所有minion-keysalt-key-akey-name##接受某个minion-keysalt-key-dkey-name##删除某个minion-keysalt-key-A##接受所有的minion-keysalt-key-D##删除所有的minion-key6、salt-call该命令通常在minion上执行minion自己执行可执行模块不是通过master下发jobsalt-call[options]function[arguments]salt-call test.ping##自己执行test.ping命令salt-call cmd.runifconfig##自己执行cmd.run函数7、salt-cp分发文件到minion上,不支持目录分发通常在master运行salt-cp[options]targetSOURCEDESTsalt-cp*a.txt/tmp salt-cp-L192.168.180.47,192.168.180.48a.txt/tmp/b.txt8、salt-ssh9、查看采集的Grains#查看所有grains键/值[rootdev32simon]# salt -L 192.168.180.47 192.168.180.48 grains.items#查看所有grains项[rootdev32simon]# salt -L 192.168.180.47 192.168.180.48 grains.ls#查看cpu核数[rootdev32simon]# salt -L 192.168.180.47 192.168.180.48 grains.item num_cpus192.168.180.47:----------num_cpus:4192.168.180.48:----------num_cpus:4[rootdev32simon]# salt -L 192.168.180.47 192.168.180.48 grains.get num_cpus192.168.180.47:4192.168.180.48:4二、pillarPillar在salt中是非常重要的组成部分利用它可以完成很强大的功能它可以指定一些信息到指定的minion上不像grains一样是分发到所有Minion上的它保存的数据可以是动态的,Pillar以sls来写的格式是键值对适用情景比较敏感的数据比如密码key等特殊数据到特定Minion上动态的内容其他数据类型#查看Minion的Pillar信息[rootdev32pillar]# salt * pillar.items#查看某个Pillar值[rootdev32pillar]# salt * pillar.item key #只能看到顶级的[rootdev32pillar]# salt * pillar.get key:key #可以取到更小粒度的编写pillar数据1.指定pillar_roots默认是/srv/pillar[rootdev32pillar]# cat /etc/salt/master...file_roots:base:-/opt/saltpillar_roots:base:-/opt/salt/pillarorder_masters:Truefile_recv:Trueauto_accept:Truegather_job_timeout:60netapi_enable_clients:-local-local_async-local_batch-local_subset-runner-runner_async-wheel-jobsdefault_include:master.d/*.conf2.编辑pillar数据文件vim test1.slsname: ‘salt’users:hadoop: 1000redhat: 2000