日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Saltstack grains组件

發布時間:2025/5/22 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Saltstack grains组件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  grains是Saltstack最重要的組件之一,grains的作用是收集被控主機的基本信息,這些信息通常都是一些靜態的數據,包括CPU、內核、操作系統、虛擬化等,在服務器端可以根據這些信息進行靈活定制,管理員可以利用這新信息對不同業務進行個性化配置。

官網提供的用來區分不同操作系統的示例如下(采用jinja模板):

{% if grains['os'] == 'Ubuntu' %} host: {{ grains['host'] }} {% elif grains['os'] == 'CentOS' %} host: {{ grains['fqdn'] }} {% endif %}

  示例中CentOS發行版主機將被 "host: {{ grains['fqdn'] }}"匹配,以主機SN100-128(centOS6.4)為例,最終得到"host:SN100-128"。同時,命令行的匹配操作系統發行版本為CentOS的被控端可以通過-G參數來過濾,如salt -G 'os:CentOS' test.ping。

[root@localhost~]# salt -G 'os:CentOS' test.ping SN100-128:True SN100-129:True SN100-130:True

(1) grains常用操作命令:

#獲取主機的grains項信息:

[root@localhost~]# salt 'SN100-128' grains.ls SN100-128:- 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

獲取主機單項grains數據:

#獲取操作系統發行版本. [root@localhost~]# salt 'SN100-128' grains.item os SN100-128:----------os:CentOS #獲取操作系統的內核信息. [root@localhost~]# salt 'SN100-128' grains.item kernel SN100-128:----------kernel:Linux#獲取操作系統的selinux信息 [root@localhost~]# salt 'SN100-128' grains.item selinux SN100-128:----------selinux:----------enabled:Falseenforced:Disabled

#salt '*' grains.item os //返回鍵值對

#salt '*' grains.get os ?//返回值

獲取主機id為'SN100-128'的所有grains鍵及值信息。

[root@localhost~]# salt 'SN100-128' grains.items SN100-128:----------SSDs:biosreleasedate:04/14/2014biosversion:6.00cpu_flags:- fpu - vme - de - pse - tsc - msr - pae - mce - cx8 - apic - sep - mtrr - pge - mca - cmov - pat - pse36 cpu_model:Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHzcpuarch:x86_64domain:fqdn:TestOnlyMPAPPfqdn_ip4:- 10.10.100.128- 127.0.0.1fqdn_ip6:gpus:|_----------model:SVGA II Adaptervendor:unknownhost:TestOnlyMPAPPhwaddr_interfaces:----------eth1:00:50:56:87:b1:54lo:00:00:00:00:00:00id:SN100-128init:upstartip4_interfaces:----------eth1:- 10.10.100.128lo:- 127.0.0.1ip6_interfaces:----------eth1:- fe80::250:56ff:fe87:b154lo:- ::1ip_interfaces:----------eth1:- 10.10.100.128- fe80::250:56ff:fe87:b154lo:- 127.0.0.1- ::1ipv4:- 10.10.100.128- 127.0.0.1ipv6:- ::1- fe80::250:56ff:fe87:b154kernel:Linuxkernelrelease:2.6.32-431.el6.x86_64locale_info:----------defaultencoding:UTF8defaultlanguage:zh_CNdetectedencoding:UTF-8localhost:TestOnlyMPAPPlsb_distrib_codename:Finallsb_distrib_id:CentOSlsb_distrib_release:6.5machine_id:bcc4f9ad2d40506966ce2b1400000014manufacturer:VMware, Inc.master:10.10.100.127mdadm:mem_total:8001nodename:TestOnlyMPAPPnum_cpus:2num_gpus:1os:CentOSos_family:RedHatosarch:x86_64oscodename:Finalosfinger:CentOS-6osfullname:CentOSosmajorrelease:6osrelease:6.5osrelease_info:- 6- 5path:/sbin:/usr/sbin:/bin:/usr/binproductname:VMware Virtual Platformps:ps -efHpythonexecutable:/usr/bin/python2.6pythonpath:- /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/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-infopythonversion:- 2- 6- 6- final- 0saltpath:/usr/lib/python2.6/site-packages/saltsaltversion:2015.5.8saltversioninfo:- 2015- 5- 8- 0selinux:----------enabled:Falseenforced:Disabledserialnumber:VMware-42 07 95 36 bc 00 ee bd-bc 79 77 5c 81 14 35 b5server_id:295812205shell:/bin/shvirtual:VMwarezmqversion:3.2.5

(2) 定義grains數據:

定義grains數據的方法有兩種,其中一種為在被控端主機定制配置文件,另一種是通過主控端擴展模塊API實現,區別是模塊更靈活,可以通過python編程動態定義,而配置文件只適合相對固定的鍵與值。下面分別舉例說明。

1.被控端主機定制grains數據

SSH登錄一臺被控主機,如SN100-128,配置文件定制的路徑為/etc/salt/minion,參數為default_include: minion.d/*.conf,具體操作如下:

【/etc/salt/minion.d/hostinfo.conf】

grains:roles:- webserver- memcachedeployment: datacenter4cabinet: 13

  重啟被控主機salt-minion服務,使之生效:service salt-minion restart。驗證結果在主控端主機運行:salt 'SN100-128' grains.item roles deployment cabinet,觀察配置的鍵與值,如下所示。

[root@localhost~]# salt 'SN100-128' grains.item roles deployment cabinet SN100-128:----------cabinet:13deployment:datacenter4roles:- webserver- memcache

或者也可以這樣定義

vim /etc/salt/grainscloud: openstack test: salt/etc/init.d/salt-minion restart 或者執行同步 salt '*' saltutil.sync_grainssalt -G 'cloud:openstack' test.ping

2.主控端擴展模塊定制grains數據

  首先在主控端編寫python代碼,然后將該python文件同步到被控主機,最后刷新生效(即編譯python源碼文件生成字節碼pyc)。在主控端bash目錄(見/etc/salt/master配置文件的file_roots項,默認的bash配置在/srv/salt)下生成_grains目錄,執行install -d /srv/salt/_grains開始編寫代碼,實現獲取被控主機系統允許最大打開文件數(ulimit -n)的grains數據。

【/srv/salt/_grains/sysprocess.py】

#!/usr/bin/env python #coding:utf-8import os,sys,commands def Granins_openfile():"""os max open file of grains value"""grains = {}#init default value_open_file=65535try:getulimit=commands.getstatusoutput('source /etc/profile;ulimit -n')except Exception,e:passif getulimit[0] == 0:_open_file=int(getulimit[1])grains['max_open_file'] = _open_filereturn grains Granins_openfile()

上面代碼的說明如下。

 grains_openfile()定義一個獲取最大打開文件數的函數,函數名稱沒有要求,符合python的函數命名規則即可;

 grains = {} 初始化一個grains字典,變量名一定要用grains,以便Saltstack識別;

 grains['max_open_file'] = _open_file 將獲取的linux ulimit -n 的結果值賦予grains['max_open_file'],其中"max_open_file"就是grains的項,_open_file就是grains的值。

 最后同步模塊到指定被控端主機并刷新生效,因為grains比較合適采集靜態類的數據,比如硬件,內核信息等。當有動態類的功能需求時,需要提行刷新,具體操作如下:

  同步模塊?salt 'SN100-128' saltutil.sync_all ,看看 "SN100-128"主機發生了什么?文件已經同步到minion cache目錄中,如下:

/var/cache/salt/minion/extmods/grains/sysprocess.py /var/cache/salt/minion/files/base/_grains/sysprocess.py

?/var/cache/salt/minion/extmods/grains/為擴展模塊文件最終存放位置,刷新模塊后將在同路徑下生成字節碼pyc;

?/var/cache/salt/minion/files/base/_grains/為臨時存放位置。

?刷新模塊salt 'SN100-128' sys.reload_modules,再看看主機發生了什么變化?在/var/cache/salt/minion/extmods/grains/位置多了一個編譯后的字節碼文件sysprocess.pyc文件,為python可執行的格式。

/var/cache/salt/minion/extmods/grains/sysprocess.py /var/cache/salt/minion/extmods/grains/sysprocess.pyc /var/cache/salt/minion/files/base/_grains/sysprocess.py

?效驗結果為可以在主控端查看grains信息,執行?salt 'SN100-128' grains.item max_open_file,結果顯示"max_open_file:1024",這就是前面定制的主機grains信息。

[root@localhost~]# salt 'SN100-128' grains.item max_open_file SN100-128:----------max_open_file:1024

grains在top.sls中的使用:

'roles: nginx':- match:grain //聲明使用grain- init.pkg //執行init.pkg模塊 

?

?

  

  

?

?

  

轉載于:https://www.cnblogs.com/saneri/p/5567491.html

總結

以上是生活随笔為你收集整理的Saltstack grains组件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 精品一区二区三区四区五区 | 欧美aaaaa| 成人wwxx免费观看 | 国产原创在线播放 | 污视频在线播放 | 黑人三级视频 | 欧美成人一二区 | 欧美一级做a爰片久久高潮 久热国产精品视频 | 亚洲最新网址 | 欧美性粗暴 | 欧美性视频播放 | 四虎国产精品成人免费入口 | 人人人妻人人澡人人爽欧美一区 | 黑料福利 | 午夜视频免费在线 | 超碰不卡| 国产操操操 | 久久情趣视频 | 国产黄在线播放 | 99欧美精品| 与亲女洗澡时伦了毛片 | 国产黄色在线免费观看 | 中文字幕网站在线观看 | 日韩欧美在线一区二区 | 蜜臀av夜夜澡人人爽人人 | 亚洲女人天堂网 | 国产成人无码精品久久 | 一区二区自拍 | 久久国产高清 | 怡红院成人av | 国产精品久久久午夜夜伦鲁鲁 | 91高跟黑色丝袜呻吟动态图 | 国产suv精品一区二区三区 | 99九九视频| 亚洲av综合一区二区 | 香蕉视频黄在线观看 | 午夜之声l性8电台lx8电台 | 国产免费黄色大片 | 国产18禁黄网站免费观看 | 免费av一区| 欧美激情首页 | 色妞www精品视频 | 97插插插 | 国产伦精品一区二区三区88av | av日韩在线播放 | np视频| 欧美日韩亚洲在线观看 | 人人爽人人草 | 亚洲日本成人 | 最近免费中文字幕中文高清百度 | 亚洲欧美日韩不卡 | 国产电影免费观看高清完整版视频 | 亚洲黄站 | 国内免费精品视频 | 青青草激情视频 | 亚洲区成人 | 欧美偷拍视频 | 欧洲一级视频 | 草草影院最新网址 | 亚洲av无码一区二区三区网站 | av在线不卡一区 | 俄罗斯黄色录像 | 国产精品视频a | 久久精品66 | 天堂在线官网 | 四虎精品永久在线 | 制服丝袜在线第一页 | av高清| 九久久久久 | 国产又粗又猛又爽免费视频 | 在线黄色网页 | 成年在线观看视频 | av在线男人天堂 | 在线中文字幕视频 | 日韩成人一区 | 精品无码久久久久国产 | 奇米影视777四色 | 99成人在线 | 久久女人| 又粗又大又硬又长又爽 | 精品在线二区 | 91国产精品一区 | 日本美女黄网站 | 中文字幕丰满人伦在线 | 精品国产91乱码一区二区三区 | 911美女片黄在线观看游戏 | 亚洲专区第一页 | 五号特工组之偷天换月 | 国产乱人乱精一区二视频国产精品 | 污av | 91官网在线观看 | 亚洲男人第一网站 | 一本亚洲| 国产欧美一区二 | 麻豆视频成人 | 在线观看欧美国产 | 韩日免费av| 欧美视频亚洲视频 | 精品成人免费一区二区在线播放 |