四、ansible介紹、ansible安裝、ansible遠(yuǎn)程執(zhí)行命令、ansible拷貝文件和目錄

一、ansible介紹

專業(yè)成都網(wǎng)站建設(shè)公司,做排名好的好網(wǎng)站,排在同行前面,為您帶來(lái)客戶和效益!創(chuàng)新互聯(lián)為您提供成都網(wǎng)站建設(shè),五站合一網(wǎng)站設(shè)計(jì)制作,服務(wù)好的網(wǎng)站設(shè)計(jì)公司,做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)負(fù)責(zé)任的成都網(wǎng)站制作公司!

不需要安裝客戶端,通過(guò)sshd去通信

基于模塊工作,模塊可以由任何語(yǔ)言開(kāi)發(fā)

不僅支持命令行使用模塊,也支持編寫(xiě)yaml格式的playbook,易于編寫(xiě)和閱讀。

安裝十分簡(jiǎn)單,centos上可直接yum安裝

有提供UI(web界面)www.ansible.com/tower,收費(fèi)的。

官方文檔 http://docs.ansible.com/ansible/latest/index.html

ansible已經(jīng)被redhat公司收購(gòu),它在github上是一個(gè)非常受歡迎的開(kāi)源軟件,github地址https://github.com/ansible/ansible

一本不錯(cuò)的入門(mén)電子書(shū) https://ansible-book.gitbooks.io/ansible-first-book/

二、ansible安裝

準(zhǔn)備兩臺(tái)機(jī)器,前面我們做實(shí)驗(yàn)的兩臺(tái)機(jī)器fuxi01,yw02

只需要在fuxi01上安裝ansible

#?yum?list?|grep?ansible?可以看到自帶源里就有2.8版本的ansible
#?yum?install?-y?ansible?ansible-doc

fuxi01上生成密鑰對(duì) ssh-keygen -t rsa

[root@fuxi01?~]#?ls?/root/.ssh/?????看是否有id_rsa和id_rsa.pub,有就不用再生成,指定類型為rsa的類型。
authorized_keys??id_rsa??id_rsa.pub??known_hosts

把公鑰id_rsa.pub放到y(tǒng)w02和本機(jī)上,設(shè)置密鑰認(rèn)證

[root@yw02?~]#?vi?.ssh/authorized_keys
[root@fuxi01?~]#?vi?.ssh/authorized_keys

回到第一臺(tái)機(jī)器試試看能不能連接了

[root@fuxi01?~]#?ssh?yw02
[root@fuxi01?~]#?ssh?127.0.0.1

配置/etc/ansible/hosts,目的是為了配置主機(jī)組的。

管理機(jī)器可以分成多個(gè)組,每一組里都有若干個(gè)機(jī)器,后續(xù)就可以針對(duì)主機(jī)組進(jìn)行操作。

//增加,可以寫(xiě)主機(jī)名,也可以寫(xiě)IP地址。主機(jī)名要想被識(shí)別,需要先在/etc/hosts中配置。

#?vi?/etc/ansible/hosts
[testhost]
127.0.0.1
yw02

說(shuō)明: testhost為主機(jī)組名字,自定義的。 下面兩個(gè)ip為組內(nèi)的機(jī)器IP。

三、ansible遠(yuǎn)程執(zhí)行命令

#?ansible??testhost?-m?command?-a?'w'

這樣就可以批量執(zhí)行命令了。這里的testhost 為主機(jī)組名,-m指定模塊(module),-a后面指定命令。也可以直接寫(xiě)一個(gè)ip,針對(duì)某一臺(tái)機(jī)器來(lái)執(zhí)行命令。

#?ansible?127.0.0.1?-m??command?-a?'hostname'
#?ansible?yw02?-m??command?-a?'hostname'

當(dāng)出現(xiàn)此錯(cuò)誤:?"msg": "Aborting, target uses selinux but python bindings (libselinux-python) aren't installed!"

解決方法:?yum install -y libselinux-python

還有一個(gè)模塊shell同樣也可以實(shí)現(xiàn)

#?ansible??testhost?-m?shell?-a?'w'

模塊:

command:執(zhí)行命令

shell:執(zhí)行腳本

四、ansible拷貝文件和目錄

#?ansible?yw02?-m?copy?-a?"src=/etc/ansible??dest=/tmp/ansible_test?owner=root?group=root?mode=0755"

copy:拷貝模塊,可以用來(lái)拷貝文件或目錄。

src:指定來(lái)源文件或目錄

dest:指定目標(biāo)文件或目錄

owner:指定目標(biāo)的屬主

group:指定目標(biāo)的屬組

mode:指定權(quán)限

注意:源目錄會(huì)放到目標(biāo)目錄下面去,如果目標(biāo)指定的目錄不存在,它會(huì)自動(dòng)創(chuàng)建。如果拷貝的是文件,dest指定的名字和源如果不同,并且它不是已經(jīng)存在的目錄,相當(dāng)于拷貝過(guò)去后又重命名。但相反,如果desc是目標(biāo)機(jī)器上已經(jīng)存在的目錄,則會(huì)直接把文件拷貝到該目錄下面。

#?ansible?testhost?-m?copy?-a?"src=/etc/passwd?dest=/tmp/123"

這里的/tmp/123和源機(jī)器上的/etc/passwd是一致的,但如果目標(biāo)機(jī)器上已經(jīng)有/tmp/123目錄,則會(huì)在/tmp/123目錄下面建立passwd文件。

五、ansible遠(yuǎn)程執(zhí)行腳本

首先創(chuàng)建一個(gè)shell腳本

#?vim??/tmp/1.sh??//加入內(nèi)容
#!/bin/bash
echo?`date`?>?/tmp/ansible_test.txt

然后把該腳本分發(fā)到各個(gè)機(jī)器上

#?ansible?testhost?-m?copy?-a?"src=/tmp/1.sh?dest=/tmp/test.sh?mode=0755"

最后是批量執(zhí)行該shell腳本

#?ansible?testhost?-m?shell?-a?"/tmp/test.sh"

shell模塊,還支持遠(yuǎn)程執(zhí)行命令并且?guī)Ч艿馈ommand模塊是不支持的。

#?ansible?testhost?-m?shell?-a?"cat?/etc/passwd|wc?-l?"

新聞名稱:四、ansible介紹、ansible安裝、ansible遠(yuǎn)程執(zhí)行命令、ansible拷貝文件和目錄
分享URL:http://muchs.cn/article34/ipgese.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、微信小程序響應(yīng)式網(wǎng)站、、企業(yè)網(wǎng)站制作、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)