日韩性视频-久久久蜜桃-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集群运用示例 (一)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 偷看洗澡一二三区美女 | 国产在线你懂得 | 免费国产黄色 | 一级艳片新婚之夜 | 好吊妞视频在线 | 在线只有精品 | 黄片毛片在线观看 | 亚洲精品午夜 | 999www| 国产精品尤物视频 | 五月婷婷小说 | 久久精品夜色噜噜亚洲a∨ 中文字幕av网 | 无码精品人妻一区二区三区漫画 | 懂色av一区二区三区免费 | 久久久久国产精品无码免费看 | 白白色在线播放 | 婷婷久久久久 | www.色网站| av手机免费看 | 91一二区| 婷婷的五月天 | 丰满人妻一区二区三区四区 | 日本在线视频二区 | 亚洲三级伦理 | 亚洲AV综合色区国产精品天天 | 亚洲免费视频播放 | 亚洲一区av在线 | 日韩激情欧美 | 日本三级影院 | 国产在线视频导航 | 欧美日韩国产片 | av先锋影音 | 精品一二三区久久aaa片 | 尤物视频在线播放 | 亚洲丁香| 97香蕉久久夜色精品国产 | 日本a级c片免费看三区 | 韩国精品在线观看 | 国产一级二级在线 | 免费的av | 国产亚洲精品久久久久久777 | av大西瓜 | 日韩欧美视频免费在线观看 | 欧美一级片免费在线观看 | 天天摸夜夜添狠狠添婷婷 | 欧美国产日韩在线观看成人 | 性做久久久久久免费观看 | 16一17女人毛片 | 在线观看日韩欧美 | 久久婷婷综合色丁香五月 | 国产美女引诱水电工 | 小泽玛利亚一区二区三区视频 | 亚洲论理| 成人在线免费 | 国产色91 | 97se亚洲| 日本在线成人 | 国产一区二区免费看 | 精品人妻无码专区视频 | 校园春色欧美 | 99cao| 欧美日韩不卡 | 姑娘第5集在线观看免费 | 中文在线字幕免 | 99精品久久久久久中文字幕 | 中文字幕免费高清在线观看 | 亚洲无码高清精品 | 亚洲视频一二三四 | 国产精品女优 | 欧美精品成人一区二区在线观看 | 韩国三级hd中文字幕 | av动漫在线免费观看 | 精品人妻无码一区 | 老司机在线观看视频 | 午夜天堂av | 国产综合精品在线 | 免费91视频 | 亚洲国产一区二区三区在线观看 | 东北少妇不戴套对白第一次 | 男女性网站 | 男女69视频| 国产日韩欧美电影 | 福利在线免费视频 | 狠狠爱综合 | 麻豆蜜桃在线观看 | 免费日本黄色 | 中文字幕在线日亚洲9 | 国产91丝袜在线播放 | 国产欧美一区二区三区免费看 | 成人三级黄色 | 国产精品毛片av | 九九精品在线播放 | 九久久| 亚洲成人网在线播放 | 欧美日韩亚洲在线 | 一级免费黄色 | 成人在线视频一区二区 | 欧美高清精品 | 青青操视频在线 |