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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

SaltStck 搭建Web集群运用示例 (一)

發布時間:2025/4/16 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SaltStck 搭建Web集群运用示例 (一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

saltstack是一個非常強大的管理工具,使用saltstack會做到標準化的管理,下面就以一個簡單的示例來更加具體的了解一下saltstack的功能特性。

使用saltstack來搭建一個簡單的web集群,需要完成三個步驟:

1、系統初始化。初始化模塊所有的機器環境一致。

2、功能模塊:設置單獨的目錄haproxy nginx ?php mysql ?memcached.

? ? ? 功能模塊做到盡可能的全,獨立。

3、業務模塊:根據業務類型劃分,如web服務、論壇bbs等


Base基礎環境的配置


salt環境配置

創建salt初始化環境:

修改master配置文件,

#?vim?/etc/salt/master file_roots:??????????????#配置基礎環境和生產環境兩個目錄base:-?/srv/salt/baseprod:-?/srv/salt/prodpillar_roots:????????????#創建pillar環境base:-?/srv/pillar/base-?/srv/pillar/prod

創建環境目錄:

?mkdir?/srv/salt/basemkdir?/srv/salt/prodmkdir?/srv/pillar/basemkdir?/srv/pillar/prod


base基礎環境初始化

基礎環境的配置項:


  • dns配置

  • history記錄時間

  • 記錄命令操作

  • 內核參數優化

  • 安裝yum倉庫

  • 安裝zabbix-agent


dns配置,創建dns.sls:

[root@node1?/srv/salt/base/init]#?cat?dns.sls? /etc/resolv.conf:file.managed:-?source:?salt://init/files/resolv.conf-?user:?root-?group:?root-?mode:?644[root@node1?/srv/salt/base/init]#?cp?/etc/resolv.conf??files/

history記錄時間,創建history.sls:

[root@node1?/srv/salt/base/init]#?cat?history.sls? /etc/profile:file.append:-?text:-?export?HISTTIMEFORMAT="%F?%T?`whoami`?"

記錄命令操作,創建audit.sls?:

[root@node1?/srv/salt/base/init]#?cat?audit.sls? /etc/bashrc:file.append:-?text:-?export?PROMPT_COMMAND='{?msg=$(history?1?|?{?read?x?y;?echo?$y;?});logger?"[euid=$(whoami)]":$(who?am?i):[`pwd`]"$msg";?}'

內核參數優化,創建sysctl.sls:

[root@node1?/srv/salt/base/init]#?cat??sysctl.sls? net.ipv4.ip_local_port_range:sysctl.present:-?value:?10000?65000???#指定本地可用的端口范圍 fs.file-max:sysctl.present:-?value:?2000000???????#最大文件 net.ipv4.ip_forward:sysctl.present:-?value:?1?????????????#打開轉發功能 vm.swappiness:sysctl.present:-?value:?0?????????????#設置盡量不使用交換分區(權重值)

設置epel源,創建yum倉庫,?

[root@node1?/srv/salt/base/init]#?cat?epel.sls? yum_repo_release:pkg.installed:-?sources:-?epel-release:?http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm

創建zabbix-agent模板,這里的安裝必須要有對應的yum源,在生產或環境需要有自己的yum源(或zabbix yum源),才能安裝上對應的軟件包:

[root@node1?/srv/salt/base/init]#?cat?zabbix-agent.sls? zabbix-agent:pkg.installed:-?name:?zabbix-agentfile.managed:-?name:?/etc/zabbix/zabbix_agentd.conf-?source:?salt://init/files/zabbix_agentd.conf-?template:?jinja-?backup:?minion???#在文件模塊中,對要修改的文件先備份,備份的文件默認在:/var/cache/salt/minion/file_backup/中-?defaults:Zabbix_Server:?{{?pillar['Zabbix_Server']?}}?#被引用的名稱AHostname:?{{?'grains[fqdn]'?}}??#被應用的名稱B-?require:-?pkg:?zabbix-agentservice.running:-?enable:?True-?watch:-?pkg:?zabbix-agent????#包和文件發生改變就重啟服務-?file:?zabbix-agent zabbix_agentd.conf.d:file.directory:-?name:?/etc/zabbix/zabbix_agentd.d-?watch_in:??????????????#配置目錄中發生任何變化都會重啟zabbix-agent-?service:?zabbix-agent??-?require:-?pkg:?zabbix-agent-?file:?zabbix-agent

拷貝zabbix的配置文件到file目錄,并將pillar參數添加到配置文件的對應位置:

cp?/etc/zabbix/zabbix_agentd.conf??files/ vim?files/zabbix_agentd.conf #設置對應參數的引用?? Hostname={{?Hostname?}}???#設置agent為主動模式,引用B出的參數 Server=?{{?Zabbix_Server?}}???#此處引用的是A處的Zabbix_Server要使用上面的參數,還需要配置pillar才能使用。


配置pillar base初始化環境

創建一個pillar,

[root@node1?/srv/pillar/base/zabbix]#?cat?agent.sls? Zabbix_Server:?172.16.10.60

創建pillar的top.sls,指定那些主機運行那些文件:

[root@node1?/srv/pillar/base]#?cat?top.sls? base:'*':-?zabbix.agent

驗證pillar的base環境:

[root@node1?/srv/pillar/base]#?salt?'*'?pillar.items node2:----------Zabbix_Server:172.16.10.60 node1:----------Zabbix_Server:172.16.10.60

驗證zabbix配置:

[root@node1?~]#?salt?'*'?state.sls?init.zabbix-agent

執行成功并自動修改了zabbix的配置文件則說明設置成功。

配置完上面的這些文件,基礎環境就配置好了:

[root@node1?/srv]#?tree . ├──?pillar │???├──?base │???│???├──?top.sls │???│???└──?zabbix │???│???????└──?agent.sls │???├──?prod │???└──?top.sls └──?salt├──?base│???└──?init│???????├──?audit.sls│???????├──?dns.sls│???????├──?epel.sls│???????├──?files│???????│???├──?resolv.conf│???????│???└──?zabbix_agentd.conf│???????├──?history.sls│???????├──?sysctl.sls│???????└──?zabbix-agent.sls├──?prod└──?top.sls

可以編寫一個基礎的初始化配置文件,include所有基礎的配置:

[root@node1?/srv/salt/base/init]#?cat?init.sls? include:-?init.dns-?init.history-?init.audit-?init.sysctl-?init.epel-?init.zabbix-agent

然后執行這個主配置文件即可:

#?salt?'*'?state.sls?init.init

如果定義高級狀態進行執行,就要定義使用top file:

[root@node1?/srv/salt/base]#?cat?top.sls? base:'*':-?init.init

執行高級狀態:

#?salt?'*'?state.highstate?test=True?驗證結果 #?salt?'*'?state.highstate??確認執行

提示:

  • 在對文件進行操作時,為了避免誤操作而破壞源文件,生產上所有涉及到文件的管理都要加上"- backup:minion" ?參數,自動備份文件,備份的文件默認在/var/cache/salt/minion/file_backup目錄。

  • 在對文件執行salt 高級狀態時,選對文件進行測試,加 test=True,確認無誤后再執行。



Prod環境配置


Haproxy基礎環境配置

首先對負載均衡進行一個初始化環境的配置,由于使用haproxy的源碼安裝方式,所以對prod的基礎環境進行配置。

創建分類目錄:

[root@node1?/srv/salt/prod]#?mkdir?haproxy [root@node1?/srv/salt/prod]#?mkdir?keepalived [root@node1?/srv/salt/prod]#?mkdir?nginx [root@node1?/srv/salt/prod]#?mkdir?php [root@node1?/srv/salt/prod]#?mkdir?memcached [root@node1?/srv/salt/prod]#?mkdir?pkg

編寫與編譯相關的安裝包文件參數:

[root@node1?/srv/salt/prod]#?vim?pkg/make.sls[root@node1?/srv/salt/prod]#?cat?pkg/make.sls make-pkg:pkg.installed:-?pkgs:-?gcc-?gcc-c++-?glibc-?make-?autoconf-?openssl-?openssl-devel-?pcre-?pcre-devel

對于haproxy需要下載源碼進行安裝,對于安裝的編譯參數等可以在一臺機器上安裝驗證。同時,需要將安裝包和所需要啟動腳本的文件放在files文件目錄中。

[root@node1?/srv/salt/prod/haproxy/files]#?cp?/software/haproxy-1.6.6/examples/haproxy.init?./

修改啟動腳本haproxy.init中的默認BIN路徑:

BIN=/usr/local/haproxy/sbin/$BASENAME

這樣在/srv/salt/prod/haproxy/files目錄下默認就會有兩個文件:

[root@node1?/srv/salt/prod/haproxy/files]#?ls haproxy-1.6.6.tar.gz??haproxy.init

編寫sls文件,在文件編寫haproxy的安裝配置:

[root@node1?/srv/salt/prod/haproxy]#?cat?install.sls? include:-?pkg.make?????????#?執行pkg/make.sls文件 haproxy-install:file.managed:????#salt狀態模塊,將source中的文件下載到ID(沒有name參數則默認ID)指定的路徑-?name:?/usr/local/src/haproxy-1.6.6.tar.gz?-?source:?salt://haproxy/files/haproxy-1.6.6.tar.gz-?mode:?644-?user:?root-?group:?rootcmd.run:????????#?cmd.run狀態模塊-?name:??cd?/usr/local/src?&&?tar?xvf?haproxy-1.6.6.tar.gz?&&??\?cd??haproxy-1.6.6?&&?make?TARGET=linux2628?PREFIX=/usr/local/haproxy-1.6.6?\&&?make?install?PREFIX=/usr/local/haproxy-1.6.6?&&?\ln?-s?/usr/local/haproxy-1.6.6?/usr/local/haproxy?-?unless:?test?-L?/usr/local/haproxy?#如果結果為True,則不執行name指向的命令-?require:-?pkg:?make-pkg-?file:?haproxy-installhaproxy-init:file.managed:-?name:?/etc/init.d/haproxy-?source:?salt://modules/haproxy/files/haproxy.init-?mode:?755-?user:?root-?group:?root-?require_in:-?file:?haproxy-installcmd.run:-?name:?chkconfig?--add?haproxy-?unless:??chkconfig??--list|grep?haproxy??#當結果為假就執行-添加自啟動命令net.ipv4.ip_nonlocal_bind:??#?設置允許linux監聽VIP(非本機IP)sysctl.present:???-?value:?1 /etc/haproxy:file.directory:??#?目錄管理-?user:?root-?group:?root-?mode:?755

這里有補充兩個狀態關系:

unless: 用于檢查的命令,僅當unless選項指向的命令返回false時才執行name指向的命令

onlyif: ?檢查的命令,近當onlyif選項指向的命令返回true時才執行name指向的命令


執行salt 命令,完成所有節點的安裝,指定環境路徑prod,默認為base環境:

#?salt?'*'??state.sls?haproxy.install?saltenv=prod


業務引用haproxy

為了更加清晰的對服務模塊和業務模塊區分,可以在prod目錄下分兩個目錄:cluster和modules ,分別對應業務和服務的各個模塊,將所有prod下的目錄服務包全部mv到modules目錄中。

由于重建了目錄,所以之前的/srv/salt/prod/modules/haproxy/install.sls?文件需要修改sourse file路徑:

?include:-?modules.pkg.make-?source:?salt://modules/haproxy/files/haproxy-1.6.6.tar.gz-?source:?salt://modules/haproxy/files/haproxy.init

修改之后的目錄:

[root@node1?/srv/salt/prod]#?tree . ├──?cluster └──?modules├──?haproxy│???├──?files│???│???├──?haproxy-1.6.6.tar.gz│???│???└──?haproxy.init│???└──?install.sls├──?keepalived├──?memcached├──?nginx├──?php└──?pkg└──?make.sls

執行salt 命令進行測試:

#?salt?'*'??state.sls?modules.haproxy.install??saltenv=prod

將集群的業務配置放在cluster/files目錄中:

[root@node1?/srv/salt/prod/cluster/files]#?cat?haproxy-outside.cfg? global maxconn?100000 chroot?/usr/local/haproxy uid?99?? gid?99? daemon nbproc?1? pidfile?/usr/local/haproxy/logs/haproxy.pid? log?127.0.0.1?local3?info defaults option?http-keep-alive maxconn?100000 mode?http timeout?connect?5000ms timeout?client??50000ms timeout?server?50000ms listen?stats mode?http bind?0.0.0.0:8888 stats?enable stats?uri?????/haproxy-status? stats?auth????haproxy:saltstack frontend?frontend_www_example_com bind?172.16.10.62:80 mode?http option?httplog log?globaldefault_backend?backend_www_example_com backend?backend_www_example_com option?forwardfor?header?X-REAL-IP option?httpchk?HEAD?/?HTTP/1.0 balance?source server?web-node1??172.16.10.60:8080?check?inter?2000?rise?30?fall?15 server?web-node2??172.16.10.61:8080?check?inter?2000?rise?30?fall?15

修改/srv/salt/prod/modules/haproxy/install.sls 添加開啟自啟動行為(上面的文件已經添加)

創建haproxy的對外業務配置sls文件:

[root@node1?/srv/salt/prod/cluster]#?cat?haproxy-outside.sls? include:-?modules.haproxy.install haproxy-service:file.managed:-?name:?/etc/haproxy/haproxy.cfg-?source:?salt://cluster/files/haproxy-outside.cfg-?user:?root-?group:?root-?mode:?644service.running:-?name:?haproxy-?enable:?True-?reload:?True-?require:-?cmd:?haproxy-install-?watch:-?file:?haproxy-service

同時,需要在base環境中修改top file:

[root@node1?/srv/salt/base]#?cat?top.sls? base:'*':-?init.init prod:'node*':-?cluster.haproxy-outside

執行salt高級狀態,由于haproxy監聽80和8888端口,所以先確保這些端口不被占用:

#?salt?'node1'?state.highstate?test=True??#高級狀態指定top?file運行 #?salt?'*'?state.highstate

訪問監聽的8888監控端口:

http://172.16.10.60:8888/haproxy-status?

訪問兩個節點成功,說明配置成功。






轉載于:https://blog.51cto.com/tryingstuff/1873040

總結

以上是生活随笔為你收集整理的SaltStck 搭建Web集群运用示例 (一)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 天堂成人av| 王者后宫yin肉h文催眠 | 欧美在线视频a | 无套在线观看 | 久久久久久久综合 | 成人看片在线 | 亚洲国产精品毛片av不卡在线 | 性生活视频在线播放 | 日韩三级久久 | 久久久久18 | 日韩精品在线观看中文字幕 | 日本啪啪片 | 探花国产精品一区二区 | 久久99影院 | av毛片基地 | 午夜神马影院 | 国产精品36p| 成人免费av片 | 日本人妻伦在线中文字幕 | 空姐毛片 | 国产高清视频免费在线观看 | 17c一起操 | 少妇被中出 | 日韩无遮挡 | 99精品福利视频 | 国产特级黄色录像 | 韩国成年人网站 | 亚洲综合久久婷婷 | 久久综合久久久久 | 4438x亚洲最大 | 国产无遮挡免费观看视频网站 | 日本免费不卡视频 | jlzzjlzz亚洲女人 | 国产九色sp调教91 | 中文字幕一区二区三区人妻 | 国产夫绿帽单男3p精品视频 | 国产午夜网站 | 日本免费一区二区在线 | 久久国产精品无码一区二区 | 武侠古典av | 国产午夜精品福利视频 | 无码一区二区三区免费视频 | 亚洲精品在线免费播放 | 5个黑人躁我一个视频 | 精品国产一二 | 国产精品不卡一区二区三区 | 97在线免费公开视频 | 杨幂一区二区三区免费看视频 | 精品在线一区二区三区 | 久久国产精品无码一区二区 | 男女交性视频 | 91九色高潮 | 欧美久久久久久久久 | 成人av在线影院 | 一级毛毛片 | 久久亚洲影视 | www.成人.com | 国产同性人妖ts口直男 | 亚洲AV永久无码国产精品国产 | 美日韩在线视频 | 精品在线播放 | 免费污片软件 | 免费成人在线网站 | 天天看a| 96福利视频 | 亚洲在线视频播放 | 国产一区二区精品丝袜 | 高潮一区 | 夜夜爽爽| 黄色小视频在线免费看 | av影库| a级在线视频 | 午夜婷婷| 精品小视频在线观看 | 日日夜夜一区 | 奇米四色7777 | 色吧在线视频 | 久久久久久久久久av | videos亚洲 | 麻豆资源 | 欧美大片一区二区三区 | 四虎网站最新网址 | 2020自拍偷拍 | 91porn九色| 性插动态视频 | 中国少妇乱子伦视频播放 | 黄色片成年人 | 国产精品成人免费一区久久羞羞 | 图片区视频区小说区 | 欧美性在线观看 | 激情久久五月天 | 高清日韩欧美 | 亚洲欧洲在线观看 | 欧美gv在线 | 午夜免费看视频 | 中文人妻av久久人妻18 | 日韩精品一区二区三区在线观看 | 在线观视频免费观看 | 波多野吉衣av在线 |