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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

SaltStack组件

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

2019獨角獸企業重金招聘Python工程師標準>>>

一、簡述

? ? 在SaltStack系統中我們的管理對象叫作Target,在Master上我們可以采用不同Target去管理不同的Minion。這些Target都是通過去管理和匹配Minion的ID來做的一些集合。

二、Target

? ? 1.正則匹配

[root@salt-master-1?~]#?salt?-E?'salt-minion*'?test.ping salt-minion-2:True salt-minion-1:True

? ? 2.列表匹配

[root@salt-master-1?~]#?salt?-L?salt-minion-1,salt-minion-2?test.ping salt-minion-2:True salt-minion-1:True

? ?3.Grains匹配

[root@salt-master-1?~]#?salt?-G?'os:CentOS'?test.ping salt-minion-2:True salt-minion-1:True

? ?4.組匹配

[root@salt-master-1?~]#?salt?-N?mygroups?test.ping salt-minion-2:True salt-minion-1:True

? ? 需要在配置文件中加以下配置

nodegroups:mygroups:?'L@salt-minion-1,salt-minion-2'

? ? 5.復合匹配

[root@salt-master-1?~]#?salt?-C?'G@os:MacOS?or?L@salt-minion-1'?test.ping salt-minion-1:True

? ? 6.CIDR匹配

[root@salt-master-1?~]#?salt?-S?'10.0.0.0/16'?test.ping salt-minion-1:True salt-minion-2:True

? ? 7.Pillar值匹配

salt?-I?'key:value'?test.ping Minion:True Minion1:True

三、Grains講解

? ? Grains是SaltStack組件中非常重要的組件之一,因為我們在做配置部署的過程中經常會使用它,Grains是SaltStack記錄的Minion的一些靜態信息的組件,我們可以簡單地理解為Grains里面記錄著每臺Minion地一些常用屬性,比如CPU、內存、磁盤、網絡信息等,我們可以通過grains.items查看某臺Minion地所有Grains信息,Minion的Grains信息是Minions啟動的時候采集匯報給Master的,在實際應用環境中我們需要根據自己的需求去自定義一些Grains,關于自定義Grains的常用方法有以下幾種:

? ? 通過Minion配置文件定義

? ? 通過Grains相關模塊定義

? ? 通過Python腳本定義 ? ?//后面會講如何通過python腳本自定義一些Grains信息

? ? 1.了解Grains相關的命令用法:

[root@salt-master-1?~]#?salt?'salt-minion-1'?sys.list_functions?grains salt-minion-1:-?grains.append-?grains.delval-?grains.filter_by-?grains.get-?grains.get_or_set_hash-?grains.has_value-?grains.item-?grains.items-?grains.ls-?grains.remove-?grains.setval-?grains.setvals

? ? 2.通過Minion配置文件定義Grains

? ? 比較簡單的放大是通過minion的配置文件來定義(Minion的Grains信息是在Minion服務啟動的時候匯報給Master的),但為了統一Minion的Grains管理,我們把這些文件存儲到minion.d/grains文件中

[root@salt-minion-1?~]#?cat?/etc/salt/minion.d/grains.conf grains:roles:-?webserver-?memcachedeployment:?datacenter4cabinet:?13cab_u:?14-15 [root@salt-minion-1?~]#?systemctl?restart?salt-minion.service #master [root@salt-master-1?~]#?salt?'salt-minion-1'?grains.item?roles salt-minion-1:----------roles:-?webserver-?memcache

? ? 3.通過Grains模版定義Grains

[root@salt-master-1?~]#?salt?'salt-minion-1'?grains.append?members?'web1' salt-minion-1:----------members:-?web1 [root@salt-master-1?~]# [root@salt-master-1?~]#?salt?'salt-minion-1'?grains.item?members salt-minion-1:----------members:-?web1 #使用grains.setvals同時設置多對Grains信息 [root@salt-master-1?~]#?salt?'salt-minion-2'?grains.setvals?"{'salt':?'good',?'book':?'cool'}" salt-minion-2:----------book:coolsalt:good [root@salt-master-1?~]#?salt?'salt-minion-2'?grains.item?salt salt-minion-2:----------salt:good

四、數據管理中心Pillar

? ? Pillar也是SaltStack組件中非常重要的組件之一,是數據管理中心,我們經常配合states在大規模的配置管理工作中使用它,Pillar在SaltStack中主要的作用就是存儲和定義配置管理中需要的一些數據,比如軟件版本號、用戶名密碼等信息,它的定義存儲格式跟Grains類似,都是YAML格式。

? ? 在Master配置文件中有一段Pillar setting選項專門定義Pillar相關的一些參數:

#pillar_roots: #??base: #????-?/srv/pillar

? ?Pillar_roots目錄可以按需修改為自己定義的工作目錄,我們首先去pillar工作目錄新建top.sls文件然后引用兩個sls文件:

[root@salt-master-1?~]#?cat?/srv/pillar/top.sls base:???????????????????#?指定環境'*':????????????????#?Target-?packages??????#?引用packages.sls?或者?packages/init.sls-?services??????#?引用services.sls?或者?services/init.sls [root@salt-master-1?~]#?cat?/srv/pillar/packages.sls zabbix:package-name:?zabbix20version:?2.0.16-1 [root@salt-master-1?~]#?cat?/srv/pillar/services.sls zabbix:port:?10050user:?admin

? ? Pillar相關的一些模塊用法:

[root@salt-master-1?~]#?salt?'salt-minion-1'?sys.list_functions?pillar salt-minion-1:-?pillar.data-?pillar.ext-?pillar.get-?pillar.item-?pillar.items-?pillar.raw #查看定義的pillar [root@salt-master-1?~]#?salt?'salt-minion-1'?pillar.item?zabbix salt-minion-1:----------zabbix:----------package-name:zabbix20port:10050user:adminversion:2.0.16-1

? ? SaltStack也支持從外部讀取pillar數據。我們可以把pillar數據保存在數據庫或者存儲服務器上。

五、針對管理對象

? ? Module是我們日常使用SaltStack接觸最多的一個組件,用于管理對象操作的,這也是SaltStack通過push的方式進行管理的入口,比如我們日常簡單的執行命令、查看安裝情況、查看服務運行情況等工作都是通過SaltStack Module來實現的。默認安裝好Master和Minion包之后,系統上會安裝很多Module,大家可以通過以下命令查看支持的所有Module列表。

? ? 1.查看Minion支持的所有module列表:

[root@salt-master-1?~]#?salt?'salt-minion-1'?sys.list_modules salt-minion-1:-?acl-?aliases-?alternatives-?archive-?artifactory-?at-?augeas-?blockdev-?btrfs-?buildout-?cloud-?cmd-?composer-?config-?container_resource-?cp-?cron-?daemontools-?data-?defaults-?devmap-?dig-?disk-?django-?dnsmasq-?dnsutil-?drbd-?elasticsearch-?environ-?etcd-?event-?extfs-?file-?firewalld-?gem-?genesis-?gnome-?grains-?group-?hashutil-?hg-?hipchat-?hosts-?http-?img-?incron-?ini-?introspect-?ip-?iptables-?jboss7-?jboss7_cli-?key-?keyboard-?kmod-?locale-?locate-?logrotate-?lowpkg-?lvm-?match-?mine-?modjk-?mount-?network-?openstack_config-?pagerduty-?partition-?pillar-?pip-?pkg-?pkg_resource-?postfix-?publish-?pyenv-?quota-?random-?random_org-?rbenv-?ret-?rsync-?runit-?rvm-?s3-?saltutil-?schedule-?scsi-?sdb-?seed-?serverdensity_device-?service-?shadow-?slack-?smtp-?sqlite3-?ssh-?state-?status-?supervisord-?sys-?sysctl-?syslog_ng-?system-?test-?timezone-?user-?vbox_guest-?virtualenv-?xfs

? ? 2.查看指定module的所有function

#查看cmd?module的所有functions命令 [root@salt-master-1?~]#?salt?'salt-minion-1'?sys.list_functions?cmd salt-minion-1:-?cmd.exec_code-?cmd.exec_code_all-?cmd.has_exec-?cmd.retcode-?cmd.run-?cmd.run_all-?cmd.run_chroot-?cmd.run_stderr-?cmd.run_stdout-?cmd.script-?cmd.script_retcode-?cmd.shell-?cmd.shells-?cmd.tty-?cmd.which-?cmd.which_bin #查看cmd?module的詳細用法與例子的命令如下: [root@salt-master-1?~]#?salt?'salt-minion-1'?sys.doc?cmd








轉載于:https://my.oschina.net/u/2317144/blog/540509

總結

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

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