国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Ansible自動(dòng)化運(yùn)維

這篇具有很好參考價(jià)值的文章主要介紹了Ansible自動(dòng)化運(yùn)維。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

前言

一、概述

常見的開源自動(dòng)化運(yùn)維工具比較

二、ansible環(huán)境搭建

三、ansible模塊

(一)、hostname模塊

(二)、file模塊

(三)、copy模塊

(四)、fetch模塊

(五)、user模塊

(六)、group模塊

(七)、cron模塊

(八)、yum_repository模塊

(九)、yum模塊

(十)、service模塊

(十一)、script模塊

(十二)、command與shell模塊

三、playbook

(一)、YAML格式

(二)、Playbook常見語法

(三)、實(shí)例

四、roles介紹

(一)、roles的目錄結(jié)構(gòu)

(二)、roles實(shí)現(xiàn)lamp

? (三)、拓展安裝discuz

總結(jié)




前言

公司的服務(wù)器越來越多, 維護(hù)一些簡單的事情都會變得很繁瑣。用shell腳本來管理少量服務(wù)器效率還行, 服務(wù)器多了之后, shell腳本無法實(shí)現(xiàn)高效率運(yùn)維。這種情況下,我們需要引入自動(dòng)化運(yùn)維工具, 對多臺服務(wù)器實(shí)現(xiàn)高效運(yùn)維。

一、概述

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

ansible是一種由Python開發(fā)的自動(dòng)化運(yùn)維工具,集合了眾多運(yùn)維工具(puppet、cfengine、chef、func、fabric)的優(yōu)點(diǎn),實(shí)現(xiàn)了批量系統(tǒng)配置、批量程序部署、批量運(yùn)行命令等功能。

架構(gòu)圖

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

特點(diǎn)

  • 部署簡單

  • 默認(rèn)使用ssh進(jìn)行管理,基于python里的==paramiko==模塊開發(fā)

  • 管理端和被管理端不需要啟動(dòng)服務(wù)

  • 配置簡單,功能強(qiáng)大,擴(kuò)展性強(qiáng)

  • 能過playbook(劇本)進(jìn)行多個(gè)任務(wù)的編排

常見的開源自動(dòng)化運(yùn)維工具比較

  1. puppet(拓展)

    基于ruby語言,成熟穩(wěn)定。適合于大型架構(gòu),相對于ansible和saltstack會復(fù)雜些。

  2. saltstack(拓展)

    基于python語言。相對簡單,大并發(fā)能力比ansible要好, 需要維護(hù)被管理端的服務(wù)。如果服務(wù)斷開,連接就會出問題。

  3. ansible

    基于python語言。簡單快捷,被管理端不需要啟服務(wù)。直接走ssh協(xié)議,需要驗(yàn)證所以機(jī)器多的話速度會較慢。

二、ansible環(huán)境搭建

一臺管理

192.168.238.129(hd1)

兩臺被管理

192.168.238.130(hd2)

192.168.238.131(hd3)

防火墻設(shè)置、寬容模式(selinux )、NAT模式

所有主機(jī)都要配置主機(jī)名和 hosts文件

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

192.168.238.129

yum install -y epel-release
yum install -y ansible

設(shè)置免密登錄

若不免密操作,在后面操作agent時(shí)都要加-k參數(shù)傳密碼;或者在主機(jī)清單里傳密碼。

ssh-keygen

ssh-copy-id hd2

ssh-copy-id hd3

vim /etc/ansible/hosts

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

若不進(jìn)行免密會失敗

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

免密后進(jìn)行ping通測試(綠色為成功,紅色為失?。?/p>

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

主機(jī)清單功能

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

因?yàn)槲唇o自己免密所以129會失敗

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

三、ansible模塊

ansible是基于模塊工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所運(yùn)行的模塊,ansible只是提供一種框架。

ansible支持的模塊非常的多,我們并不需要把每個(gè)模塊都記住,而只需要熟悉一些常見的模塊,其它的模塊在需要用到時(shí)再查詢即可。

?官網(wǎng)模塊文檔地址:Ansible Documentation

(一)、hostname模塊

hostname模塊用于修改主機(jī)名(注意: 它不能修改/etc/hosts文件)?

基本格式為: ansible 操作的機(jī)器名或組名 -m 模塊名 -a "參數(shù)1=值1 參數(shù)2=值2" argment

例:修改hd3的hostname

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

(二)、file模塊

file模塊:用于對文件相關(guān)的操作(創(chuàng)建, 刪除, 軟硬鏈接等)

stat模塊:類似linux的stat命令,用于獲取文件的狀態(tài)信息 。(了解)

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

創(chuàng)建一個(gè)目錄

ansible my -m file -a 'path=/test state=directory'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

創(chuàng)建一個(gè)文件

注意:my組的驗(yàn)證文章中多數(shù)只截取了一臺機(jī)器

ansible my -m file -a 'path=/test/1.txt state=touch'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

遞歸修改owner,group,mode

ansible 192.168.238.130 -m file -a 'path=/root/OK recurse=yes owner=bin group=bin mode=1777'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

創(chuàng)建文件并指定owner,group,mode等

ansible my -m file -a 'path=/test/1.txt state=file owner=bin group=daemon mode=1777'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

也可以指定其中一項(xiàng)進(jìn)行創(chuàng)建修改

刪除文件

刪除目錄 absent(缺席的) 會連同目錄里的所有文件,刪除文件值刪除對應(yīng)文件

ansible my -m file -a 'path=/test/1.txt state=absent '

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

創(chuàng)建軟鏈接文件

ansible my -m file -a 'src=/etc/fstab path=/opt/fstab state=link'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

創(chuàng)建硬鏈接文件

ansible my -m file -a 'src=/etc/fstab path=/opt/fstab2 state=hard'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

(三)、copy模塊

copy模塊用于對文件的遠(yuǎn)程拷貝操作(如把本地的文件拷貝到遠(yuǎn)程的機(jī)器上)

echo master > OK

ansible my -m copy -a 'src=/root/OK dest=/opt/word'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

content參數(shù)

使用content參數(shù)直接往遠(yuǎn)程文件里寫內(nèi)容(會覆蓋原內(nèi)容)

注意:ansible中-a后面的參數(shù)里也有引號時(shí),記得要單引雙引交叉使用,如果都為雙引會出現(xiàn)問題。

ansible my -m copy -a 'content="hello\n" dest=/opt/word'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

force參數(shù)

使用force參數(shù)控制是否強(qiáng)制覆蓋

如果目標(biāo)文件已經(jīng)存在,則不覆蓋
ansible my -m copy -a 'src=/root/OK dest=/opt/word force=no'


如果目標(biāo)文件已經(jīng)存在,則會強(qiáng)制覆蓋
ansible my -m copy -a 'src=/root/OK dest=/opt/word force=yes'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

backup參數(shù)

使用backup參數(shù)控制是否備份文件

backup=yes表示如果拷貝的文件內(nèi)容與原內(nèi)容不一樣,則會備份一份
my的機(jī)器上會將/opt/word備份一份(備份文件命名加上時(shí)間),再遠(yuǎn)程拷貝新的文件為/opt/word
ansible my -m copy -a 'src=/root/OK dest=/opt/word backup=yes owner=daemon group=daemon mode=1777'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

"/"符號

copy模塊拷貝時(shí)要注意拷貝目錄后面是否帶"/"符號

/etc/yum.repos.d后面不帶/符號,則表示把/etc/yum.repos.d整個(gè)目錄拷貝到/tmp/目錄下
ansible my -m copy -a 'src=/etc/yum.repos.d dest=/mnt/'


/etc/yum.repos.d/后面帶/符號,則表示把/etc/yum.repos.d/目錄里的所有文件拷貝到/tmp/目錄下
ansible my -m copy -a 'src=/etc/yum.repos.d/ dest=mnt/'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

(四)、fetch模塊

fetch模塊與copy模塊類似,但作用相反。用于把遠(yuǎn)程機(jī)器的文件拷貝到本地。

注意: fetch模塊不能從遠(yuǎn)程拷貝目錄到本地

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

創(chuàng)建同名文件

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

(五)、user模塊

user模塊用于管理用戶賬號和用戶屬性。

創(chuàng)建aaa用戶,默認(rèn)為普通用戶,創(chuàng)建家目錄

ansible 192.168.238.130 -m user -a 'name=aaa state=present'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

創(chuàng)建bbb系統(tǒng)用戶,并且登錄shell環(huán)境為/sbin/nologin

ansible 192.168.238.130 -m user -a 'name=bbb state=present system=yes shell="/sbin/nologin"'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

創(chuàng)建ccc用戶, 使用uid參數(shù)指定uid, 使用password參數(shù)傳密碼密碼要用雙引號引起來,單引號的話驗(yàn)證時(shí)會密碼不正確

echo 123123 | openssl passwd -1 -stdin
ansible 192.168.238.130 -m user -a 'name=ccc uid=2000 state=present password="$1$TyI.ymu/$bDnWZc.re9V/37HAZAgrf0"'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

刪除aaa用戶,但家目錄默認(rèn)沒有刪除

ansible 192.168.238.130 -m user -a 'name=aaa state=absent'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

刪除bbb用戶,使用remove=yes參數(shù)讓其刪除用戶的同時(shí)也刪除家目錄

ansible 192.168.238.130 -m user -a 'name=bbb state=absent remove=yes'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

創(chuàng)建一個(gè)普通用戶叫badboy,并產(chǎn)生空密碼 密鑰對echo

 ansible 192.168.238.130 -m user -a 'name=badboy generate_ssh_key=yes'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

產(chǎn)生空密碼指的是這個(gè),并非空密碼

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

(六)、group模塊

group模塊用于管理用戶組和用戶組屬性。

創(chuàng)建組

ansible 192.168.238.130 -m group -a 'name=long gid=3000 state=present'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

刪除組(如果有用戶的gid為此組,則刪除不了)

ansible 192.168.238.130 -m group -a 'name=long  state=absent'
ansible 192.168.238.130 -m group -a 'name=ss  state=absent'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

(七)、cron模塊

cron模塊用于管理周期性時(shí)間任務(wù)。

創(chuàng)建一個(gè)cron任務(wù),不指定user的話,默認(rèn)就是root。

minute,hour,day,month,week不指定的話,默認(rèn)都為*

ansible 192.168.238.130 -m cron -a 'name="test cron1" user=root job="touch /mnt/mnt.txt"  minute=*/2'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

也可以crontab -l查看任務(wù)

刪除cron任務(wù)

ansible 192.168.238.130 -m cron -a 'name="test cron1" state=absent'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

(八)、yum_repository模塊

yum_repository模塊用于配置yum倉庫。

注意:此模塊只幫助配置yum倉庫,但如果倉庫里沒有軟件包,安裝一樣會失敗。所以可以手動(dòng)去掛載光驅(qū)。

增加一個(gè)/etc/yum.repos.d/local.repo配置文件 。(輸入命令注意-a后引號)

ansible 192.168.238.130 -m yum_repository -a "name=local description=localyum baseurl=file:///mnt/ enabled=yes gpgcheck=no"

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

刪除/etc/yum.repos.d/local.repo配置文件

ansible 192.168.238.130 -m yum_repository -a "name=local state=absent"

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

(九)、yum模塊

yum模塊用于使用yum命令來實(shí)現(xiàn)軟件包的安裝與卸載。

使用yum安裝一個(gè)軟件前提:被安裝的機(jī)器上yum配置都已經(jīng)OK)

ansible 192.168.238.130 -m yum -a 'name=dhcp state=present'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

使用yum安裝l軟件,state=latest表示安裝最新版本

ansible 192.168.238.130 -m yum -a 'name=dhcp state=latest'

使用yum卸載一個(gè)軟件

ansible 192.168.238.130 -m yum -a 'name=dhcp state=absent'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

(十)、service模塊

service模塊用于控制服務(wù)的啟動(dòng),關(guān)閉,開機(jī)自啟動(dòng)等。

啟動(dòng)vsftpd服務(wù),并設(shè)為開機(jī)自動(dòng)啟動(dòng)

ansible 192.168.238.130 -m yum -a 'name=vsftpd state=present'
ansible 192.168.238.130 -m service -a 'name=vsftpd state=started enabled=on'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

關(guān)閉vsftpd服務(wù),并設(shè)為開機(jī)不自動(dòng)啟動(dòng)

ansible 192.168.238.130 -m service -a 'name=vsftpd state=stoppd enabled=fales'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

(十一)、script模塊

script模塊用于在遠(yuǎn)程機(jī)器上執(zhí)行本地腳本。(不用給權(quán)限

vim /root/test.sh
ansible 192.168.238.130 -m script -a '/root/test.sh'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

(十二)、command與shell模塊

兩個(gè)模塊都是用于執(zhí)行l(wèi)inux命令的,這對于命令熟悉的工程師來說,用起來非常high。

shell模塊與command模塊差不多(command模塊不能執(zhí)行一些類似$HOME,>,<,|等符號,但shell可以)

注意: shell模塊并不是百分之百任何命令都可以,比如vim或ll別名就不可以。不建議大家去記憶哪些命令不可以,大家只要養(yǎng)成任何在生產(chǎn)環(huán)境里的命令都要先在測試環(huán)境里測試一下的習(xí)慣就好。

查看my組IP

 ansible my -m command -a 'ifconfig ens33'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

對比于shell

ansible my -m command -a 'ifconfig ens33 |grep netmask'
ansible my -m shell -a 'ifconfig ens33 |grep netmask'

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

三、playbook

playbook(劇本): 是ansible用于配置,部署,和管理被控節(jié)點(diǎn)的劇本。用于ansible操作的編排。

使用的格式為yaml格式。(saltstack,elk,docker,docker-compose,kubernetes等也都會用到y(tǒng)aml格式)

(一)、YAML格式

注意: 寫這種文件不要使用tab鍵,都使用空格。

  • 以.yaml或.yml結(jié)尾

  • 文件的第一行以 "---"開始,表明YMAL文件的開始(可選的)

  • 以#號開頭為注釋

  • 列表中的所有成員都開始于相同的縮進(jìn)級別, 并且使用一個(gè) "- " 作為開頭(一個(gè)橫杠和一個(gè)空格)

  • 一個(gè)字典是由一個(gè)簡單的 鍵: 值 的形式組成(這個(gè)冒號后面必須是一個(gè)空格)

(二)、Playbook常見語法

hosts 用于指定要執(zhí)行任務(wù)的主機(jī),其可以是一個(gè)或多個(gè)由冒號分隔主機(jī)組
remote_user 用于指定遠(yuǎn)程主機(jī)上的執(zhí)行任務(wù)的用戶
tasks 任務(wù)列表, 按順序執(zhí)行任務(wù)
如果一個(gè)host執(zhí)行task失敗, 這個(gè)tasks會回滾, 修正playbook 中的錯(cuò)誤, 然后重新執(zhí)行即可
handlers 類似task,但需要使用notify通知調(diào)用
不管有多少個(gè)通知者進(jìn)行了notify,等到play中的所有task執(zhí)行完成之后,handlers也只會被執(zhí)行一次
handlers最佳的應(yīng)用場景是用來重啟服務(wù),或者觸發(fā)系統(tǒng)重啟操作.除此以外很少用到了
variables 變量

定義變量可以被多次方便調(diào)用

(三)、實(shí)例

playbook編排my組安裝httpd

mkdir /root/palybook

vim /root/palybook/test.yml

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

可以中文,最好注釋以免造成異常(傳輸?shù)奈募_保主機(jī)有不然會失?。?/p>

執(zhí)行寫好的palybook :ansible-playbook /root/playbook/test.yml

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

vim /etc/httpd/conf/httpd.conf

修改配置文件端口為443

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

再次執(zhí)行palybook: ansible-playbook /root/playbook/test.yml

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

playbook編排多個(gè)hosts任務(wù)

vim /etc/httpd/conf/host.conf

ansible-playbook /root/playbook/host.yml

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

書寫錯(cuò)誤

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

my組用變量

vim /etc/httpd/conf/host.conf

ansible-playbook /root/playbook/host.yml

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

四、roles介紹

roles(角色): 就是通過分別將variables, taskshandlers等放置于單獨(dú)的目錄中,并可以便捷地調(diào)用它們的一種機(jī)制。

假設(shè)我們要寫一個(gè)playbook來安裝管理lamp環(huán)境,那么這個(gè)playbook就會寫很長。所以我們希望把這個(gè)很大的文件分成多個(gè)功能拆分, 分成apache管理,php管理,mysql管理,然后在需要使用的時(shí)候直接調(diào)用就可以了,以免重復(fù)寫。就類似編程里的模塊化的概念,以達(dá)到代碼復(fù)用的效果。

(一)、roles的目錄結(jié)構(gòu)

注意: 在每個(gè)角色的目錄中分別創(chuàng)建files, tasks,handlers,templates,vars和meta目錄,用不到的目錄可以創(chuàng)建為空目錄.。

files 用來存放由copy模塊或script模塊調(diào)用的文件
tasks 至少有一個(gè)main.yml文件,定義各tasks
handlers 有一個(gè)main.yml文件,定義各handlers
templates 用來存放jinjia2模板
vars 有一個(gè)main.yml文件,定義變量
meta 有一個(gè)main.yml文件,定義此角色的特殊設(shè)定及其依賴關(guān)系

(二)、roles實(shí)現(xiàn)lamp

創(chuàng)建目錄及文件,并確認(rèn)目錄結(jié)構(gòu)

mkdir -p {httpd,mysql,php}/{files,tasks,handlers,templates,vars,meta}
touch {httpd,mysql,php}/{tasks,handlers,vars,meta}/main.yml

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

準(zhǔn)備httpd服務(wù)器的主頁文件,php測試頁和配置文件等

echo "hello" > /etc/ansible/roles/httpd/files/index.html
echo -e "<?php\n\tphpinfo();\n?>" > /etc/ansible/roles/httpd/files/test.php
yum install -y httpd 
cp /etc/httpd/conf/httpd.conf /etc/ansible/roles/httpd/files/

編寫httpd角色的main.yml文件

vim /etc/ansible/roles/httpd/tasks/main.yml

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

編寫httpd角色里的handler

vim /etc/ansible/roles/httpd/handler/main.yml

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

編寫php角色的main.yml文件

vim /etc/ansible/roles/php/tasks/main.yml

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

編寫mysql角色的main.yml文件

vim /etc/ansible/roles/mysql/tasks/main.yml

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

編寫lamp的playbook文件調(diào)用前面定義好的三個(gè)角色

創(chuàng)建個(gè)playbook/lamp.yaml文件,位置隨意

vim /root/playbook/lamp.yaml

注意:要與前面創(chuàng)建的名稱一樣

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

執(zhí)行l(wèi)amp的playbook文件

ansible-playbook /root/playbook/lamp.yml

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

? (三)、拓展安裝discuz

在此基礎(chǔ)上安裝discuz

discuz包放在/roles/httpd/files中

修改httpd角色的main.yml文件進(jìn)行添加

vim /etc/ansible/roles/httpd/tasks/main.yml

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

修改mysql角色的main.yml文件

vim /etc/ansible/roles/mysql/tasks/main.yml

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

編寫mysql的建庫腳本

vim /etc/ansible/roles/mysql/files/create.sh

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

執(zhí)行l(wèi)amp的playbook文件

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維Ansible自動(dòng)化運(yùn)維,ansible,自動(dòng)化,運(yùn)維

后續(xù)用mysql創(chuàng)建的授權(quán)用戶和數(shù)據(jù)庫即可。


總結(jié)

今天內(nèi)容相當(dāng)于可以舒緩下大腦了,沒有zabbix那么繁瑣的的流程。與基礎(chǔ)命令的使用相似,只是在基礎(chǔ)稍微擴(kuò)展,模版較多熟記常用的就好,要理解含義再操作更有助于背記。playbook為整體,roles為進(jìn)行分類,顯得比較有序,報(bào)錯(cuò)可找到對應(yīng)的地方進(jìn)行處理。文章來源地址http://www.zghlxwxcb.cn/news/detail-705809.html

到了這里,關(guān)于Ansible自動(dòng)化運(yùn)維的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 自動(dòng)化運(yùn)維工具——Ansible

    自動(dòng)化運(yùn)維工具——Ansible

    Ansible是一個(gè)基于Python開發(fā)的配置管理和應(yīng)用部署工具,現(xiàn)在也在自動(dòng)化管理領(lǐng)域大放異彩。它融合了眾多老牌運(yùn)維工具的優(yōu)點(diǎn),Pubbet和Saltstack能實(shí)現(xiàn)的功能,Ansible基本上都可以實(shí)現(xiàn)。 Ansible能批量配置、部署、管理上千臺主機(jī)。比如以前需要切換到每個(gè)主機(jī)上執(zhí)行的一或多個(gè)

    2024年02月14日
    瀏覽(32)
  • Ansible自動(dòng)化運(yùn)維工具

    Ansible自動(dòng)化運(yùn)維工具

    Ansible是一個(gè)基于Python開發(fā)的配置管理和應(yīng)用部署工具,現(xiàn)在也在自動(dòng)化管理領(lǐng)域大放異彩。它融合了眾多老牌運(yùn)維工具的優(yōu)點(diǎn),Pubbet和Saltstack能實(shí)現(xiàn)的功能,Ansible基本上都可以實(shí)現(xiàn)。 ansible 自動(dòng)化運(yùn)維工具(機(jī)器管理工具) 可以實(shí)現(xiàn)批量管理多臺(成百上千)主機(jī),應(yīng)用級

    2024年02月14日
    瀏覽(26)
  • 【ansible】自動(dòng)化運(yùn)維ansible之playbook劇本編寫與運(yùn)行

    【ansible】自動(dòng)化運(yùn)維ansible之playbook劇本編寫與運(yùn)行

    目錄 一、ansible劇本playbook的組成 二、palybook的基礎(chǔ)應(yīng)用: 實(shí)操1:通過palybooks完成nginx的安裝 第一種:通過yum安裝nginx 第二種:通過編譯安裝nginx 實(shí)操2:playbook定義、引用變量??????? 實(shí)操3:通過playbook完成普通賬戶權(quán)限提權(quán)為root用戶 實(shí)操4:通過when條件判斷指定主機(jī)

    2024年02月20日
    瀏覽(21)
  • 自動(dòng)化運(yùn)維工具之Ansible

    自動(dòng)化運(yùn)維工具之Ansible

    Ansible是一個(gè)基于Python開發(fā)的配置管理和應(yīng)用部署工具,現(xiàn)在也在自動(dòng)化管理領(lǐng)域大放異彩。它融合了眾多老牌運(yùn)維工具的優(yōu)點(diǎn),Pubbet和Saltstack能實(shí)現(xiàn)的功能,Ansible基本上都可以實(shí)現(xiàn)。 Ansible能批量配置、部署、管理上千臺主機(jī)。比如以前需要切換到每個(gè)主機(jī)上執(zhí)行的一或多個(gè)

    2024年02月08日
    瀏覽(28)
  • 自動(dòng)化運(yùn)維——ansible (五十二) (01)

    自動(dòng)化運(yùn)維——ansible (五十二) (01)

    提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔 目錄 一、概述 1.1?為什么要用自動(dòng)化運(yùn)維軟件 1.2 自動(dòng)化運(yùn)維 1.3?自動(dòng)化運(yùn)維要注意的方面 1.4 自動(dòng)化運(yùn)維主要關(guān)注的方面? 1.5?常見的開源自動(dòng)化運(yùn)維軟件 1.6?自動(dòng)化運(yùn)維軟件一般安裝在哪 二、ansibl

    2024年02月09日
    瀏覽(22)
  • Ansible自動(dòng)化運(yùn)維工具---Playbook

    Ansible自動(dòng)化運(yùn)維工具---Playbook

    playbook是劇本的意思,通過 task 調(diào)用 ansible 的模塊將多個(gè) play 組織在一 個(gè)playbook中運(yùn)行。 playbook各部分組成 : Tasks : 任務(wù),即調(diào)用模塊完成的某操作 Variables : 變量 emplates : 模板 Handlers : 處理器,當(dāng)某條件滿足時(shí),觸發(fā)執(zhí)行的操作 Roles : 角色 playbook yaml語法 是換行空兩格,-和

    2024年02月03日
    瀏覽(20)
  • 自動(dòng)化運(yùn)維工具——Ansible學(xué)習(xí)(二)

    自動(dòng)化運(yùn)維工具——Ansible學(xué)習(xí)(二)

    目錄 一、handlers和notify結(jié)合使用觸發(fā)條件 1.新建httpd.yml文件 2.復(fù)制配置文件到ansible的files目錄中 3.卸載被控機(jī)已安裝的httpd 4.執(zhí)行httpd.yml腳本 5.更改httpd.conf配置文件 6.使用handlers 7.重新執(zhí)行httpd.yml腳本 8.檢查被控機(jī)的端口號是否改變 9.handlers也可以觸發(fā)多個(gè) 二、tags 1.通過指定

    2024年02月16日
    瀏覽(40)
  • Ansible 自動(dòng)化運(yùn)維工具的使用

    Ansible 自動(dòng)化運(yùn)維工具的使用

    目錄 ? 一、Ansible簡介 二、Ansible 的安裝和使用 1.下載 2.使用 三、Ansible命令和模塊 1.命令格式 2.命令行模塊 (1)command 模塊 (2)shell 模塊 (3)cron 模塊 (4)user 模塊 (5)group 模塊 (6)copy 模塊 (7)file 模塊 (8)hostname 模塊 (9)ping 模塊? (10)yum 模塊 (11)service/

    2024年02月11日
    瀏覽(25)
  • Ansible 自動(dòng)化運(yùn)維工具(完善版)

    Ansible 自動(dòng)化運(yùn)維工具(完善版)

    目錄 ?Ansible概述 Ansible特點(diǎn) Ansible應(yīng)用 1、使用者 2、Ansible工具集合 3、作用對象 Ansible的搭建 環(huán)境 ansible主機(jī) 1、ansible 2、Ansible-doc Ansible模塊 1.command模塊 2.shell模塊 3.raw模塊 Ansible是最近非?;鸬囊豢铋_源運(yùn)維自動(dòng)化工具,通過Ansible可以實(shí)現(xiàn)運(yùn)維自動(dòng)化,提高運(yùn)維工程師的工

    2024年02月16日
    瀏覽(22)
  • Ansible自動(dòng)化運(yùn)維學(xué)習(xí)——綜合練習(xí)

    Ansible自動(dòng)化運(yùn)維學(xué)習(xí)——綜合練習(xí)

    目錄 (一)練習(xí)一 1.新建一個(gè)role——app 2.創(chuàng)建文件 3.刪除之前安裝的httpd服務(wù)和apache用戶? 4.準(zhǔn)備tasks任務(wù) (1)創(chuàng)建組group.yml (2)創(chuàng)建用戶user.yml (3)安裝程序yum.yml (4)修改模板httpd.conf.j2 (5)編寫templ.yml (6)編寫start.yml (7)編寫copyfile.yml (8)定義順序main.yml? 5.準(zhǔn)備變量文件vars (1)編寫變量腳

    2024年02月15日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包