saltstack grains
生活随笔
收集整理的這篇文章主要介紹了
saltstack grains
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、什么是Grains
? Grains是SaltStack的一個組件,存放著minion啟動時收集的底層系統的靜態信息。Grains是存儲在minion端的,當minion啟動時,會進行Grains的采集工作,然后保存下來。在以后的生命周期(再次重啟minion,會重新收集)是不會發生變化的,所以是靜態數據。Grains中包含諸如運行的內核版本、操作系統、CPU個數、內存、物理設備型號等信息。
? 數據采集更新方式:Minion啟動時收集,也可以使用saltutil.sync_grains
2、Grains的應用場景
Grains可以在state系統中使用,用于配置管理模塊。
Grains可以target中使用,在用來匹配Minion,比如匹配操作系統,使用-G選項。
Grains可以用于信息查詢,Grains保存著收集到的客戶端的詳細信息。
3、Grains常用操作
a、列出Minion上所有可用的grains的名稱
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | [root@master?~]#?salt?'*'?grains.ls node02.saltstack.com: ????-?SSDs ????-?biosreleasedate ????-?biosversion ????-?cpu_flags ????-?cpu_model ????-?cpuarch ????-?domain ????-?fqdn ????-?fqdn_ip4 ????-?fqdn_ip6 ????-?gpus ????-?host ????-?hwaddr_interfaces ????-?id ????-?init ????-?ip4_interfaces ????-?ip6_interfaces ????-?ip_interfaces ????-?ipv4 ????-?ipv6 ????-?kernel ????-?kernelrelease ????-?locale_info ????-?localhost ????-?lsb_distrib_codename ????-?lsb_distrib_id ????-?lsb_distrib_release ????-?machine_id ????-?manufacturer ????-?master ????-?mdadm ????-?mem_total ????-?nodename ????-?num_cpus ????-?num_gpus ????-?os ????-?os_family ????-?osarch ????-?oscodename ????-?osfinger ????-?osfullname ????-?osmajorrelease ????-?osrelease ????-?osrelease_info ????-?path ????-?productname ????-?ps ????-?pythonexecutable ????-?pythonpath ????-?pythonversion ????-?saltpath ????-?saltversion ????-?saltversioninfo ????-?selinux ????-?serialnumber ????-?server_id ????-?shell ????-?virtual ????-?zmqversion node01.saltstack.com: ????-?SSDs ????-?biosreleasedate ????-?biosversion ????-?cpu_flags ????-?cpu_model ????-?cpuarch ????-?domain ????-?fqdn ????-?fqdn_ip4 ????-?fqdn_ip6 ????-?gpus ????-?host ????-?hwaddr_interfaces ????-?id ????-?init ????-?ip4_interfaces ????-?ip6_interfaces ????-?ip_interfaces ????-?ipv4 ????-?ipv6 ????-?kernel ????-?kernelrelease ????-?locale_info ????-?localhost ????-?lsb_distrib_codename ????-?lsb_distrib_id ????-?lsb_distrib_release ????-?machine_id ????-?manufacturer ????-?master ????-?mdadm ????-?mem_total ????-?nodename ????-?num_cpus ????-?num_gpus ????-?os ????-?os_family ????-?osarch ????-?oscodename ????-?osfinger ????-?osfullname ????-?osmajorrelease ????-?osrelease ????-?osrelease_info ????-?path ????-?productname ????-?ps ????-?pythonexecutable ????-?pythonpath ????-?pythonversion ????-?saltpath ????-?saltversion ????-?saltversioninfo ????-?selinux ????-?serialnumber ????-?server_id ????-?shell ????-?virtual ????-?zmqversion |
b、列出Minion上所有grains的的名稱及內容
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 | [root@master?~]#?salt?'node01.saltstack.com'?grains.items node01.saltstack.com: ????---------- ????SSDs: ????biosreleasedate: ????????07/02/2015 ????biosversion: ????????6.00 ????cpu_flags: ????????-?fpu ????????-?vme ????????-?de ????????-?pse ????????-?tsc ????????-?msr ????????-?pae ????????-?mce ????????-?cx8 ????????-?apic ????????-?sep ????????-?mtrr ????????-?pge ????????-?mca ????????-?cmov ????????-?pat ????????-?pse36 ????????-?clflush ????????-?dts ????????-?mmx ????????-?fxsr ????????-?sse ????????-?sse2 ????????-?ss ????????-?syscall ????????-?nx ????????-?rdtscp ????????-?lm ????????-?constant_tsc ????????-?up ????????-?arch_perfmon ????????-?pebs ????????-?bts ????????-?xtopology ????????-?tsc_reliable ????????-?nonstop_tsc ????????-?aperfmperf ????????-?unfair_spinlock ????????-?pni ????????-?pclmulqdq ????????-?ssse3 ????????-?cx16 ????????-?pcid ????????-?sse4_1 ????????-?sse4_2 ????????-?x2apic ????????-?popcnt ????????-?tsc_deadline_timer ????????-?aes ????????-?xsave ????????-?avx ????????-?f16c ????????-?rdrand ????????-?hypervisor ????????-?lahf_lm ????????-?ida ????????-?arat ????????-?epb ????????-?pln ????????-?pts ????????-?dts ????????-?fsgsbase ????????-?smep ????cpu_model: ????????Intel(R)?Core(TM)?i5-3210M?CPU?@?2.50GHz ????cpuarch: ????????x86_64 ????domain: ????????saltstack.com ????fqdn: ????????node01.saltstack.com ????fqdn_ip4: ????????-?10.10.10.141 ????fqdn_ip6: ????gpus: ????????|_ ??????????---------- ??????????model: ??????????????SVGA?II?Adapter ??????????vendor: ??????????????unknown ????host: ????????node01 ????hwaddr_interfaces: ????????---------- ????????eth0: ????????????00:0c:29:98:68:91 ????????lo: ????????????00:00:00:00:00:00 ????????pan0: ????????????f6:aa:1f:cb:87:f0 ????id: ????????node01.saltstack.com ????init: ????????upstart ????ip4_interfaces: ????????---------- ????????eth0: ????????????-?10.10.10.141 ????????lo: ????????????-?127.0.0.1 ????????pan0: ????ip6_interfaces: ????????---------- ????????eth0: ????????????-?fe80::20c:29ff:fe98:6891 ????????lo: ????????????-?::1 ????????pan0: ????ip_interfaces: ????????---------- ????????eth0: ????????????-?10.10.10.141 ????????????-?fe80::20c:29ff:fe98:6891 ????????lo: ????????????-?127.0.0.1 ????????????-?::1 ????????pan0: ????ipv4: ????????-?10.10.10.141 ????????-?127.0.0.1 ????ipv6: ????????-?::1 ????????-?fe80::20c:29ff:fe98:6891 ????kernel: ????????Linux ????kernelrelease: ????????2.6.32-573.el6.x86_64 ????locale_info: ????????---------- ????????defaultencoding: ????????????UTF8 ????????defaultlanguage: ????????????en_US ????????detectedencoding: ????????????UTF-8 ????localhost: ????????node01.saltstack.com ????lsb_distrib_codename: ????????Final ????lsb_distrib_id: ????????CentOS ????lsb_distrib_release: ????????6.7 ????machine_id: ????????5bd0d598c3ad4f78b38c6e7600000020 ????manufacturer: ????????VMware,?Inc. ????master: ????????master.saltstack.com ????mdadm: ????mem_total: ????????1863 ????nodename: ????????node01.saltstack.com ????num_cpus: ????????1 ????num_gpus: ????????1 ????os: ????????CentOS ????os_family: ????????RedHat ????osarch: ????????x86_64 ????oscodename: ????????Final ????osfinger: ????????CentOS-6 ????osfullname: ????????CentOS ????osmajorrelease: ????????6 ????osrelease: ????????6.7 ????osrelease_info: ????????-?6 ????????-?7 ????path: ????????/sbin:/usr/sbin:/bin:/usr/bin ????productname: ????????VMware?Virtual?Platform ????ps: ????????ps?-efH ????pythonexecutable: ????????/usr/bin/python2.6 ????pythonpath: ????????-?/usr/bin ????????-?/usr/lib64/python26.zip ????????-?/usr/lib64/python2.6 ????????-?/usr/lib64/python2.6/plat-linux2 ????????-?/usr/lib64/python2.6/lib-tk ????????-?/usr/lib64/python2.6/lib-old ????????-?/usr/lib64/python2.6/lib-dynload ????????-?/usr/lib64/python2.6/site-packages ????????-?/usr/lib64/python2.6/site-packages/PIL ????????-?/usr/lib64/python2.6/site-packages/gst-0.10 ????????-?/usr/lib64/python2.6/site-packages/gtk-2.0 ????????-?/usr/lib64/python2.6/site-packages/webkit-1.0 ????????-?/usr/lib/python2.6/site-packages ????????-?/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg-info ????pythonversion: ????????-?2 ????????-?6 ????????-?6 ????????-?final ????????-?0 ????saltpath: ????????/usr/lib/python2.6/site-packages/salt ????saltversion: ????????2015.5.10 ????saltversioninfo: ????????-?2015 ????????-?5 ????????-?10 ????????-?0 ????selinux: ????????---------- ????????enabled: ????????????False ????????enforced: ????????????Disabled ????serialnumber: ????????VMware-56?4d?e6?9b?20?1f?b4?60-77?5d?03?1d?1d?98?68?91 ????server_id: ????????1356238538 ????shell: ????????/bin/sh ????virtual: ????????VMware ????zmqversion: ????????3.2.5 |
c、查看虛擬化的類型
| 1 2 3 4 5 | [root@master?~]#?salt?'*'?grains.get?virtual node01.saltstack.com: ????VMware node02.saltstack.com: ????VMware |
d、查詢eth0所有IP地址
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | [root@master?~]#?salt?'*'?grains.get?ip_interfaces node01.saltstack.com: ????---------- ????eth0: ????????-?10.10.10.141 ????????-?fe80::20c:29ff:fe98:6891 ????lo: ????????-?127.0.0.1 ????????-?::1 ????pan0: node02.saltstack.com: ????---------- ????eth0: ????????-?10.10.10.142 ????????-?fe80::20c:29ff:fead:83d ????lo: ????????-?127.0.0.1 ????????-?::1 ????pan0: |
e、查詢eth0所有IP地址
| 1 2 3 4 5 6 7 | [root@master?~]#?salt?'*'?grains.get?ip_interfaces:eth0 node02.saltstack.com: ????-?10.10.10.142 ????-?fe80::20c:29ff:fead:83d node01.saltstack.com: ????-?10.10.10.141 ????-?fe80::20c:29ff:fe98:6891 |
4、自定義grains
a)在minion上的/etc/salt/minion直接配置grains
| 1 2 3 4 5 6 7 8 9 10 | [root@node01?~]#?vim?/etc/salt/minion grains: ??roles:?IT ??dept:?system [root@master?~]#?salt?-G?'roles:IT'?test.ping node01.saltstack.com: ????True [root@master?~]#?salt?-G?'dept:system'?test.ping node01.saltstack.com: ????True |
b)通過/etc/salt/grains進行定義
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | [root@node01?~]#?vim?/etc/salt/grains? virtual:?openstack [root@node01?~]#?/etc/init.d/salt-minion?restart Stopping?salt-minion?daemon:???????????????????????????????[確定] Starting?salt-minion?daemon:???????????????????????????????[確定] [root@node02?~]#?cat?/etc/salt/grains? virtual:?xen [root@node02?~]#?/etc/init.d/salt-minion?restart Stopping?salt-minion?daemon:???????????????????????????????[確定] Starting?salt-minion?daemon:???????????????????????????????[確定] [root@master?~]#?salt?-G?'virtual:xen'?test.ping node02.saltstack.com: ????True |
在minion端添加一個mysqlversion的信息
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [root@node01?~]#?cat?/etc/salt/grains? virtual:?openstack mysqlversion:?5.5 測試,發現存在報錯信息 [root@master?~]#?salt?-G?'mysqlversion:5.5'?test.ping No?minions?matched?the?target.?No?command?was?sent,?no?jid?was?assigned. ERROR:?No?return?received 使用saltutil.sync_grains進行刷新測試 [root@master?~]#?salt?'*'?saltutil.sync_grains node02.saltstack.com: node01.saltstack.com: [root@master?~]#?salt?-G?'mysqlversion:5.5'?test.ping node01.saltstack.com: ????True |
本文轉自 冰凍vs西瓜 51CTO博客,原文鏈接:http://blog.51cto.com/molewan/1899533,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的saltstack grains的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: USB口的红外条形码扫描器的另类使用
- 下一篇: 我写了一个开源项目AlphabetPy