本偏文章以上圖拓撲部署
首先準備了6臺為centos7的主機(確保selinux和iptables不會成阻礙!關閉他們)
我們先來安裝ansible吧!
配置EPEL源過后使用 yum -y install ansible
?。。。。。。。。。。。。。。。。。。。。。。。。。。。。。?/p>
出師不利啊,安裝ansible就失敗了。!!?。。。?/p>
看了一下 好像確實缺少了python-jinja2
后來翻看了下網上資料,好像原因是centos7上默認安裝python版本為2.7,python-jinja2只能安裝在2.6上,后來決定編譯安裝! (糾正一下,后來發現是我的安裝光盤包不齊導致)
經過一番倒騰
好像安裝成功了,不確定就$?看看 ,返回值為0 ,恩 應該成功了。
看著好像確實成功了,我們去看看/etc/ansible/ansible.cfg 的文件在不在吧!!畢竟第一步我們就要添加需要管控的主機呢!
看來他并沒有為我們提供inventory和配置文件,我們到解壓包里面去找找看有實例文件沒!
果然在解壓后的examples目錄下有兩個文件,我們還是給它放在 /etc/ansible目錄下去吧
打開配置文件發現inventory和roles定義的路徑都被注釋掉了,我們就暫時先只改動這兩處吧,以后看有什么問題在改。
再來看hosts文件,把里面的全都刪掉,我們先隨便定義幾組
先就這樣吧。
然后我們還需要配置ansible基于秘鑰方式登錄各主機
生成秘鑰
在將秘鑰發至各個主機
由此,我們所有準備工作就算完成啦!??!
我們先來通過ansible ping下所有主機
OK啦
我們就可以寫roles啦!??!先寫keepalived+nginx吧。
我們先想一下這兩臺主機部署的順序,首先要下載,我們得掛載yum的base和epel源,然后下載ntp時間進行同步(這里我用ansible這臺主機做時間服務器)接著安裝keepalived、提供配置文件、啟動服務
接著安裝nginx、修改他的配置文件、啟動服務。
寫的順序計劃好了,就準備開工吧??!
先創建目錄,然后創建main.yml
先mount然后安裝ntp 然后替換ntpconf,這里我已經放了一個文件到file目錄里面,因為這個配置文件可以兩臺nginx完全相同不用放模板里面,直接放files目錄里面復制粘貼過去!
接著隨便找個地方創建個nginx.yml吧!
看上去應該OK了 我們去測試下
又報錯了~~~~~~~~~~~~~~~~~~~~~~~
這個箭頭指向了n 我的n沒寫錯啊 ,應該是格式的問題,我們修改一下
改成了這樣~給他個縮進,再試試
繼續報錯 我們在改
改成了這樣,繼續試
可以了~但是這里有個問題是mount居然是跳過了,但是下面的安裝ntp又沒問題,我去確認了一番,發現確實沒掛載,我們先讓他執行一次!
看著好像是成功了 但是中間有個warning 好像是說使用掛載模塊不要執行running命令?
去測試了下兩臺主機確實已經掛載了 接著測試下時間是否同步了這才是我們需要的!
并沒有同步。。??吹竭@里。。我想起了沒有啟動服務,以前做其他實驗時都是ntpdate命令直接同步時間,在改改
一并改成了這樣,(之前其實不知道有mount模塊,馬哥沒說,看來還是要自己在實踐中多多學習)再來試試
貌似沒問題 接著直接執行吧!
好啦 沒問題了~ 不過和我們現實時間有點差別慢了2天而且是晚上11點咯。。。這個不管他啦 不影響我們keepalived同步就好 (生產環境中不行哦,如果和現實時間不同步,到時候看日志什么的搞得你頭痛)
我們接著把nginx和keepalived寫完吧
把上面的注釋掉了,測試下吧
應該是可以的,下面的報錯原因是我們是測試 并沒有安裝,所以服務沒法啟動,現在我去改下配置文件。
這是我對keepalived修改 全都注釋掉了 就留了虛擬路由配置段,另外增加了一段對ngxin健康檢查的。
另外要注意途中state和priority使用的是變量替換,因為在兩個keepalived主機上這里是需要修改的,所以用了變量,再因此我們需要去編輯hosts文件了
增加2個變量
接下來是nginx
接下來寫的是apache和php的playbook
這我真的想哭了。。。這個實驗做的。。。藍屏3次,無緣無故斷了四次網。。。我前面寫了一下午具體的流程。。。全沒了。。只能貼最終配置的結果了。。。
這里我用nginx自己做了sorryserver,所以是此效果,(鑒于之前所說。。之前寫的具體流程。。全沒了。。只能看最終效果了。。。)
繼續mariadb吧!
這里是我寫的mariadb的playbook 增加了個腳本授權root用戶遠程登錄和創建一個wordpress數據庫,這里我用ansible主機做了一個nfs準備讓apache兩臺主機同時掛載,提供一個wordpress。
看上去應該OK了,我們用ansible主機登錄試試
OK啦,可以去下wordpress了
已經把wordpress放到共享出去的分區啦,最后再來改一改apache的兩臺主機吧!
這里只添加了最下面的3個安裝nfs掛載nfs和拷貝一個配置文件過去,如果配置文件更改就reload一下httpd服務。
這是handlers里面所定義的。
接著來測試一遍吧
ok了,直接運行一次
最后我們來改一改wordpress的文件
接著打開瀏覽器來試下。
報錯了,先來看下日志記錄了什么
上面的都不用管它 居然提示tmp目錄下沒有匹配到index.html或者index.php頁面(這是肯定有的),通過最后一行推斷原因是不能用tmp做目錄,換一個目錄試下
最后還是在根目錄下建了個html目錄,掛載至此吧。
果然是我們推斷的原因,但是這里忘了裝php-mysql,手動裝下,
裝上了,接著重啟服務,在訪問。
成功了,我們先填寫下信息上去
好像有點問題,這個問題跟當初做apache和php分離一樣,圖片加載不出來,當初以為是apache上沒有靜態內容,導致加載不出來,后面又把wordpress放到apache上,確實就可以了,但是現在掛載到本地的啊。。。應該不存在這個問題?。。。。?!但是這個狀況應該是wordpress的問題,暫時先不研究啦~(搞不懂這里是啥情況了,請求192.168.20.106,主頁的一部分請求被自動轉到105上,應該確實是wordpress問題)
還在我們這個實驗并不依賴這個,現在停一個apache試一下,看是否也能打開,還是可以打開的 接著把apache都停掉~看能否出來我們的sorry頁面??!
可以的,我們實踐就做這里啦~~
ps:第一次感覺寫個不是作業的博客。。好心酸。。藍屏了4次。。無故斷網N次。。。。。
原創文章,作者:N24_Ghost,如若轉載,請注明出處:http://www.www58058.com/67206
很不錯的過程,尤其是出問題后排查思路,這部分是大家都需要學習的,贊。