版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、自動(dòng)化運(yùn)維工具Ansible詳細(xì)部署參考:/353572/1579894一、基礎(chǔ)介紹1、簡(jiǎn)介ansible是新出現(xiàn)的自動(dòng)化運(yùn)維工具,基于Python開(kāi)發(fā),集合了眾多運(yùn)維工具(puppet、cfengine、 chef、func、fabric)的優(yōu)點(diǎn),實(shí)現(xiàn)了批量系統(tǒng)配置、批量程序部署、批量運(yùn)行命令等功能。 ansible是基于模塊工作的,本身沒(méi)有批量部署的能力。真正具有批量部署的是ansible所運(yùn) 行的模塊,ansible只是提供一種框架。主要包括:、連接插件connection plugins:負(fù)責(zé)和被監(jiān)控端實(shí)現(xiàn)通信;、host inventory:指定操作的主機(jī),是一個(gè)配置文件里面定義監(jiān)控
2、的主機(jī);、各種模塊核心模塊、command模塊、自定義模塊;、借助于插件完成記錄日志郵件等功能;、playbook:劇本執(zhí)行多個(gè)任務(wù)時(shí),非必需可以讓節(jié)點(diǎn)一次性運(yùn)行多個(gè)任務(wù)。2、總體架構(gòu)Putwmg 扯 ciomCor Modu 昭容Cusiwn Module aIHctstH 1血也血RUsersConnac (ton PiUSMHost 3GfnM iDjgin.oirierAnsible3、特性、no agents:不需要在被管控主機(jī)上安裝任何客戶端;、no server:無(wú)服務(wù)器端,使用時(shí)直接運(yùn)行命令即可;、modules in any languages:基于模塊工作,可使用任意語(yǔ)言開(kāi)
3、發(fā)模塊;、yaml, not code:使用 yaml 語(yǔ)言定制劇本 playbook;、ssh by default:基于 SSH 工作;、strong multi-tier solution:可實(shí)現(xiàn)多級(jí)指揮。4、優(yōu)點(diǎn)、輕量級(jí),無(wú)需在客戶端安裝agent,更新時(shí),只需在操作機(jī)上進(jìn)行一次更新即可;、批量任務(wù)執(zhí)行可以寫成腳本,而且不用分發(fā)到遠(yuǎn)程就可以執(zhí)行;、使用python編寫,維護(hù)更簡(jiǎn)單,ruby語(yǔ)法過(guò)于復(fù)雜;、支持 sudo。5、任務(wù)執(zhí)行流程Filter plugin雜七雜_A的日濾算子技術(shù)胃客Bl叩說(shuō)明:、以上內(nèi)容大多是基于他人分享的基礎(chǔ)上總結(jié)而來(lái),學(xué)習(xí)借鑒之用;、本次安裝基于CentOS
4、 6.4系統(tǒng)環(huán)境。二、Ansible基礎(chǔ)安裝與配置1、Ansible基礎(chǔ)安裝(1)、python2.7 安裝 HYPERLINK https:/www.python.Org/ftp/python/2.7.8/Python-2.7.8.tgz https:/www.python.Org/ftp/python/2.7.8/Python-2.7.8.tgztarxvzf Python-2.7.8.tgzcd Python-2.7.8./configure -prefix=/usr/localmake -jobs=grep processor /proc/cpuinfo I wc -lmake ins
5、tall#將python頭文件拷貝到標(biāo)準(zhǔn)目錄,以避免編譯ansible時(shí),找不到所需的頭文件cd /usr/local/include/python2.7cp -a ./* /usr/local/include/#備份舊版本的python,并符號(hào)鏈接新版本的pythoncd /usr/binmv python python2.6ln -s /usr/local/bin/pythonln -s /usr/local/python/bin/python ./python#修改yum腳本,使其指向舊版本的python,已避免其無(wú)法運(yùn)行vim /usr/bin/yum#!/usr/bin/python
6、 - #!/usr/bin/python2.6、setuptools模塊安裝 HYPERLINK https:/pypi.python.Org/packages/source/s/setuptools/setuptools-7.0.tar.gz https:/pypi.python.Org/packages/source/s/setuptools/setuptools-7.0.tar.gz -no-check-certificat etar xvzf setuptools-7.0.tar.gzcd setuptools-7.0python setup.py install、pycrypto模塊
7、安裝 HYPERLINK /packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz /packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz -no-check-certificatetar xvzf pycrypto-2.6.1.tar.gzcd pycrypto-2.6.1python setup.py install、PyYAML模塊安裝 HYPERLINK /download/libyaml/yaml-0.L5.tar.gz /download/libyaml/yaml-0.L5.tar.gztar x
8、vzf yaml-0.1.5.tar.gzcd yaml-0.1.5./configure -prefix=/usr/localmake -jobs=grep processor /proc/cpuinfo I wc -lmake install HYPERLINK /packages/source/P/PyYAML/PyYAML-3.11.tar.gz /packages/source/P/PyYAML/PyYAML-3.11.tar.gz -no-check-certificatetarxvzf PyYAML-3.11.tar.gzcd PyYAML-3.11python setup.py
9、 install、Jinja2模塊安裝 HYPERLINK /packages/source/M/MarkupSafe/MarkupSafe-0.9.3.tar.gz /packages/source/M/MarkupSafe/MarkupSafe-0.9.3.tar.gz -no-check-certif icatetarxvzf MarkupSafe-0.9.3.tar.gzcd MarkupSafe-0.9.3python setup.py install HYPERLINK /packages/source/J/Jinja2/Jinja2-2.7.3.tar.gz /packages/
10、source/J/Jinja2/Jinja2-2.7.3.tar.gz -no-check-certificatetarxvzf Jinja2-2.7.3.tar.gzcd Jinja2-2.7.3python setup.py install(6)、paramiko模塊安裝 HYPERLINK /packages/source/e/ecdsa/ecdsa-0.11.tar.gz /packages/source/e/ecdsa/ecdsa-0.11.tar.gz -no-check-certificatetar xvzf ecdsa-0.11.tar.gzcd ecdsa-0.11pytho
11、n setup.py install HYPERLINK /packages/source/p/paramiko/paramiko-1.15.1.tar.gz /packages/source/p/paramiko/paramiko-1.15.1.tar.gz -no-check-certificate# tar xvzf paramiko-1.15.1.tar.gzcd paramiko-1.15.1python setup.py install、simplejson模塊安裝 HYPERLINK /packages/source/s/simplejson/simplejson-3.6.5.t
12、ar.gz /packages/source/s/simplejson/simplejson-3.6.5.tar.gz -no-check-certificat etar xvzf simplejson-3.6.5.tar.gzcd simplejson-3.6.5python setup.py install(8)、ansible 安裝 HYPERLINK /ansible/ansible/archive/v1.7.2.tar.gz /ansible/ansible/archive/v1.7.2.tar.gztar xvzf ansible-1.7.2.tar.gzcd ansible-1.
13、7.2python setup.py install2、Ansible 配置(1)、SSH免密鑰登錄設(shè)置#生成公鑰/私鑰ssh-copy-id -i /.ssh/id_rsa.pub -p 22612 youboy32”ssh-copy-id -i /.ssh/id_rsa.pub -p 22612 HYPERLINK mailto:youboy33 youboy33”(2)、ansible 配置mkdir -p /etc/ansible將前面解壓出來(lái)的ansible里面的example中的cfg文件以及hosts文件拷貝到/etc/ansible/,;我們是禁止root用戶直接登錄的,因此要
14、將/etc/ansible/擁有者和屬主都改成youboy用戶;# vim /etc/ansible/ansible.cfgremote_port = 22612private_key_file = /home/youboy/.ssh/id_rsa.pub#主機(jī)組定義# vim /etc/ansible/hoststest_cluster3233、簡(jiǎn)單測(cè)試youboy131 ansible$ ./bin/ansibletest_cluster -m command -a uptime33 | success | rc=0 23:38:50 up 4:10, 1 user, load avera
15、ge: 0.00, 0.01, 0.00| success | rc=0 23:38:51 up 4:10, 1 user, load average: 0.00, 0.00, 0.00說(shuō)明:第一次運(yùn)行時(shí),需要輸入一下“yes”【進(jìn)行公鑰驗(yàn)證】,后續(xù)無(wú)需再次輸入。yoiibDy131 anaible 5 . /bin/ansible te3t_clu3ter -n cominand -a uptim巴I success I rc=0 23 : 38: 50 up4: 10 r1 ns-errLead average :0 .Cllr0.0032 I auccesa I rc=0 23 : 38
16、: 51 up4 :10 r1 na-er.Load average :00.003、常用模塊使用(1)、setup#用來(lái)查看遠(yuǎn)程主機(jī)的一些基本信息y-oubD131 Bnsibl $ . /bin/Bnsibl-e test_c.luster -m setupI success anaiblE_zaGt3: ansible_a1l_ipv4_addreaaes:anm1 l_ipv333:,Fz&80 : ;5054; zz ;ze4z;el32anaiblerchitec-tuTe:京踴_4an3iblejDiD3_date,r: Cium/mtn、ana ible_b i D3_vera
17、 i on: ,F 0.5.1 rans ible_candl ine”: XETtBOiiRDIYPL : pc ,Fr,rXEriABLEir! RU3nrWIT- 1h DTrETi rHTTtfll IH II I-1 ft fl、ping#用來(lái)測(cè)試遠(yuǎn)程主機(jī)的運(yùn)行狀態(tài)youboy131 ansible$ ./bin/ansibletest_cluster -m pingyouay131/匕LiVenmi匕Lm t-est_Glu.atr -m ping192 16S. 5 .132 I aiiGGtaa changM: al a-erpingT,: r,pong1FI success
18、chanqedF : zal s-erpi : pong11、file#設(shè)置文件的屬性相關(guān)選項(xiàng)如下:force:需要在兩種情況下強(qiáng)制創(chuàng)建軟鏈接,一種是源文件不存在,但之后會(huì)建立的情況下; 另一種是目標(biāo)軟鏈接已存在,需要先取消之前的軟鏈,然后創(chuàng)建新的軟鏈,有兩個(gè)選項(xiàng):yeslno group :定義文件/目錄的屬組mode :定義文件/目錄的權(quán)限owner :定義文件/目錄的屬主path:必選項(xiàng),定義文件/目錄的路徑recurse:遞歸設(shè)置文件的屬性,只對(duì)目錄有效src:被鏈接的源文件路徑,只應(yīng)用于state=link的情況dest:被鏈接到的路徑,只應(yīng)用于state=link的情況state:
19、directory :如果目錄不存在,就創(chuàng)建目錄file :即使文件不存在,也不會(huì)被創(chuàng)建link :創(chuàng)建軟鏈接hard :創(chuàng)建硬鏈接touch :如果文件不存在,則會(huì)創(chuàng)建一個(gè)新的文件,如果文件或目錄已存在,則更新其最后修改時(shí)間absent :刪除目錄、文件或者取消鏈接文件示例:#遠(yuǎn)程文件符號(hào)鏈接創(chuàng)建youboy131 ansible$ ./bin/ansibletest_cluster -m file -a”src=/etc/resolv.confdest=/tmp/resolv.conf state=linkyoubD7131 ansible ? . /bin/anaible test_c-
20、luster? -m zile -a arcetc/reaDlv. de3t=/tmpre3D 192.16S. 5 .,132 I aueceas chinflEd: true,de3tr,:,gil i 500,group 巾 I ay,me;旺 0777,owiLer Isi-e1T i 16,lsrCrn c&tlz,.sta.t-eir I lirLk r3:500192.16S.5.133 I success 11 chan-gedT,: t rue reat : /tinp-/EeaQlv. conf lprF: 500,gr-crup : yDuboynrF。如”:0777 r
21、owhee: yDuboynr31se:目匚g ; /etG/reaDlv. g-dzifstat-e; Lin-k,#遠(yuǎn)程文件信息查看youboy131 ansible$ ./bin/ansibletest_cluster -m command -a Is -la/tmp/resolv.confoubciy131 ansible $ . /bin/aiisible test_clu3ter -m cctmmarid -a Is -la /tirp/resolv.ccrn=ir #,5,133 I siQQaa I eg=0 IrwicrwKrwK. 1 youboy yDiibov Lt J
22、an 23 23:49 /tmp/resolv.con - /etc/resolv.ccrnz192.ItS.S.132 I success I rc=0 LrwjcEWKEVK 1 youhoy /uhoy 16 Jaci 25 23:45 /tmp/resolv.conf - /tG/reaalv.ccm.fI#遠(yuǎn)程文件符號(hào)鏈接刪除youboy131 ansible$ ./bin/ansibletest_cluster -m file -a path=/tmp/resolv.confstate=absentyoubDvSlSl anaible $ . fbin/anaible tEat_c
23、.luster -m zile -a ,Rpath=/ceip/eeso-Iv . eon 3tate=abserLt 192 . IfiS. 5.133 I sucicess “chanjW: tnierpath11: /trnp/resDlv. CD:nzrstate:目匕眺nL5籟,ehangW : t me rRp3t:hir! /trap/ msoIv . conf nPstate : absent11#遠(yuǎn)程文件信息查看# ansiblestorm_cluster -m command -a Is -al /tmp/resolv.confytubDyL31 ansible $ . /
24、bin/iansible t-est_cluster -m command -b 71 Is -lia /tnnp/resolv.atnf IL33 I FAILED I dc-=2 Is: ciannot access /tmp/resaIv. conf: No such file 口二 directory32 | FAILED | dc-=2 Is: ciannot access /tmp/resalv. conf: No such file 口二 directory說(shuō)明:如上顯示,代表文件或鏈接已經(jīng)刪除。(4)、copy需要在客戶端安裝selinux
25、包yum install -y libselinux-python#復(fù)制文件到遠(yuǎn)程主機(jī)相關(guān)選項(xiàng)如下:backup:在覆蓋之前,將源文件備份,備份文件包含時(shí)間信息。有兩個(gè)選項(xiàng):yeslnocontent :用于替代“ src ”,可以直接設(shè)定指定文件的值dest:必選項(xiàng)。要將源文件復(fù)制到的遠(yuǎn)程主機(jī)的絕對(duì)路徑,如果源文件是一個(gè)目錄,那么該 路徑也必須是個(gè)目錄directory_mode:遞歸設(shè)定目錄的權(quán)限,默認(rèn)為系統(tǒng)默認(rèn)權(quán)限force:如果目標(biāo)主機(jī)包含該文件,但內(nèi)容不同,如果設(shè)置為yes,則強(qiáng)制覆蓋,如果為no, 則只有當(dāng)目標(biāo)主機(jī)的目標(biāo)位置不存在該文件時(shí),才復(fù)制。默認(rèn)為yesothers:所有的f
26、ile模塊里的選項(xiàng)都可以在這里使用src:被復(fù)制到遠(yuǎn)程主機(jī)的本地文件,可以是絕對(duì)路徑,也可以是相對(duì)路徑。如果路徑是一 個(gè)目錄,它將遞歸復(fù)制。在這種情況下,如果路徑使用“/”來(lái)結(jié)尾,則只復(fù)制目錄里的內(nèi) 容,如果沒(méi)有使用“/”來(lái)結(jié)尾,則包含目錄在內(nèi)的整個(gè)內(nèi)容全部復(fù)制,類似于rsync。示例:#將本地文件“ /etc/ansible/ansible.cfg ”復(fù)制到遠(yuǎn)程服務(wù)器youboy131 ansible$ ./bin/ansibletest_cluster -m copy -a”src=/etc/ansible/ansible.cfgdest=/tmp/ansible.cfg owner=yo
27、uboy group=youboymode=0644yDuboy131 anaible . /bin/anaible teat_cli-iater- -m copy -a s2C-=/Etc/an.sible/ansible. czg- dest=/ 192.16S.5.133 | aucceaa chan-ged : t ruereat : Vtnip/arLsible . czgrF: 500,gircrup : ycruhoy rp:15目皿” ;-lfl1245S40b27fOca7Mie04flbd5a55,FHe 北”;Q&44Pw站; youijoyP目比Gcmt懷ntr: un
28、QQn-in柘己_口;匚Aj專; u日柘E_ticine_t ;s0,七說(shuō)十;7191,七匚g ; Vhcine/yDuijQy/ .ansiiiLe/tnipan.aible-tinp-14220t 310.33-75203352374tat-E ; zile-,PzLd7; 5Q0192,163.5,132 I aucGeaa Ghan-ged; true tdeat: Vtmp/ansible . czg,gid.: 50Q,group e: y&iLbDy r,ind53UinM: lal245e40b27zOzca7cdlS04fli)d5aE6,Fm北”:,Ofi44,rowne
29、L :四曲虹 raec-onte: unconzined_u: cbject_r: uaer_hcnie_t: 30,目2己”:7191,arCr : /hcnie/yDubDy/ .an3ible/tmpfarL3ible-tmp-142202 91Q_ S3-4 40772078470/36,atat-e : zil-e-, PzLd7: 500#遠(yuǎn)程文件信息查看youboy131 ansible$ ./bin/ansibletest_cluster -m command -a Is -la/tmp/ansible.cfgyoui?DyQ131 ansible . /bin/arLsihl
30、e teat_cluatei? -in cominand -a 1P1 a -la /tnip/ansible . czgIF1192,5.133 I a a I cg=0 -rw-r-一r一一, 1 ynuiioy yoiiboy 7191 Jan 24 00 :13 /tnrp/anaihLe .192.16E.5.132 I aucce 3 3 I rc=0 -rw-r一r.1 youbo oiibDy 7191 Jan 24 00 :13 /tnrp/anaible .、command (不支持管道)#在遠(yuǎn)程主機(jī)上執(zhí)行命令相關(guān)選項(xiàng)如下:creates: 一個(gè)文件名,當(dāng)該文件存在,則該命
31、令不執(zhí)行free_form:要執(zhí)行的linux指令chdir :在執(zhí)行指令之前,先切換到該目錄removes: 一個(gè)文件名,當(dāng)該文件不存在,則該選項(xiàng)不執(zhí)行executable:切換shell來(lái)執(zhí)行指令,該執(zhí)行路徑必須是一個(gè)絕對(duì)路徑示例:youboy131 ansible$ ./bin/ansibletest_cluster -m command -a uptimey /home/youboy/test123/test.txtyouboy131 ansible$ chmod +x /tmp/test.sh#將創(chuàng)建的腳本文件分發(fā)到遠(yuǎn)程youboy131 ansible$ ./bin/ansible
32、test_cluster -m copy -a src=/tmp/test.shdest=/tmp/test.sh owner=youboy group=youboy mode=0755”#遠(yuǎn)程執(zhí)行youboy131 ansible$ ./bin/ansibletest_cluster -m shell -a /tmp/test.shyoubDy131 anaiblne $ . /bin/ansibl-e te3t_c-lu3ter -m shell -a 1,七叩1/匕壬目七,目11 192.16S.5.133 I success I rc=0192.16S.5.132 I 3UCCES3
33、I rc=0 G 1 192.16S.5.131Q 2 32 狀O 3 192.16S.5.133EDDtL32 tE3tL23 # cat /home/yciuiDy/te5tl23/te3t. txt 2013-01-:4_00:2fi;31(7,更多模塊其他常用模塊,比如:service cron、yum、synchronize就不一一例舉,可以結(jié)合自身的系 統(tǒng)環(huán)境進(jìn)行測(cè)試。service:系統(tǒng)服務(wù)管理cron:計(jì)劃任務(wù)管理yum: yum軟件包安裝管理 synchronize:使用rsync同步文件 user:系統(tǒng)用戶管理group :系統(tǒng)用戶組管理更多模塊可以參考:#ansible-
34、doc -ifcl-B- da-c 1Man-ageManageraristabigip_ncide bigIp poai bigrteou ndary_fflrs f bi-rSetj and retcicTcs tilo ACL infoEmaticin.#dd a h&st (and. Alt*rLfiato the 白hNotify aiTkbEafce Atoctut- app dplayefttsMandgcfi altcrnauive pro-g=xanffi for Gommon go皿口口目力rosto nn nxsibuji /eto /Anslble t g】 a did boat.airbzali:*_dep 1 口姬 ent alt-oarnatiivaMm占明日Manage: froundary mctcraXploy &twa.se HYPERLINK /modules_by_category.html /modules by category.html HYPERLINK /docs/ /docs/(國(guó)內(nèi)的一個(gè)鏡像站點(diǎn),避免被墻人_人)(8,一些概念補(bǔ)充playbook的組成:playbook是由
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年違約借款合同違約責(zé)任追究辦法3篇
- 2025年度個(gè)人房屋買賣價(jià)格調(diào)整及支付合同4篇
- 2025年度企業(yè)應(yīng)收賬款債權(quán)轉(zhuǎn)讓與風(fēng)險(xiǎn)控制協(xié)議書(shū)3篇
- 2025年度房地產(chǎn)樣板間設(shè)計(jì)與施工合同范本4篇
- 2025年度電子商務(wù)個(gè)人勞務(wù)派遣合作協(xié)議書(shū)4篇
- 工廠租地合同(2篇)
- 二零二五年度民政局離婚協(xié)議書(shū)模板法律咨詢附加服務(wù)合同4篇
- 2025年度銷售顧問(wèn)市場(chǎng)調(diào)研聘用合同2篇
- 2024西部縣域經(jīng)濟(jì)百?gòu)?qiáng)研究
- STEM教育實(shí)踐講解模板
- 焊接材料-DIN-8555-標(biāo)準(zhǔn)
- 斯柯達(dá)野帝說(shuō)明書(shū)
- 工程索賠真實(shí)案例范本
- 重癥醫(yī)學(xué)科運(yùn)用PDCA循環(huán)降低ICU失禁性皮炎發(fā)生率品管圈QCC持續(xù)質(zhì)量改進(jìn)成果匯報(bào)
- 個(gè)人股權(quán)證明書(shū)
- 醫(yī)院運(yùn)送工作介紹
- 重癥患者的容量管理
- 學(xué)習(xí)游戲?qū)χ行W(xué)生學(xué)業(yè)成績(jī)的影響
- 小學(xué)四年級(jí)上冊(cè)遞等式計(jì)算100題及答案
- 新版?zhèn)€人簡(jiǎn)歷Excel表格模板共2聯(lián)
- (完整)中國(guó)象棋教案
評(píng)論
0/150
提交評(píng)論