CentOS 6.5 Ansible詳細部署

來源:互聯網
上載者:User

標籤:ansible

一、ansible介紹

1、簡介

     ansible是新出現的自動化營運工具,基於Python開發,集合了眾多營運工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批配量序部署、批量運行命令等功能。ansible是基於模組工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所啟動並執行模組,ansible只是提供一種架構。主要包括:

(1)、串連外掛程式connection plugins:負責和被監控端實現通訊;

(2)、host inventory:指定操作的主機,是一個設定檔裡面定義監控的主機;

(3)、各種模組核心模組、command模組、自訂模組;

(4)、藉助於外掛程式完成記錄日誌郵件等功能;

(5)、playbook:劇本執行多個任務時,非必需可以讓節點一次性運行多個任務。


2、基礎架構

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/53/A7/wKiom1Rsxz3ToUCAAAGROYAM3EI989.jpg" width="642" height="391" alt="wKiom1Rsxz3ToUCAAAGROYAM3EI989.jpg" />

3、特性

(1)、no agents:不需要在被管控主機上安裝任何用戶端;

(2)、no server:無伺服器端,使用時直接運行命令即可;

(3)、modules in any languages:基於模組工作,可使用任意語言開發模組;

(4)、yaml,not code:使用yaml語言定製劇本playbook;

(5)、ssh by default:基於SSH工作;

(6)、strong multi-tier solution:可實現多級指揮。


4、優點
(1)、輕量級,無需在用戶端安裝agent,更新時,只需在操作機上進行一次更新即可;
(2)、批量任務執行可以寫成指令碼,而且不用分發到遠程就可以執行;
(3)、使用python編寫,維護更簡單,ruby文法過於複雜;
(4)、支援sudo。


5、任務執行流程

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/53/A7/wKiom1Rsx2uQYJZ5AAJplY08vOQ976.jpg" width="514" height="415" alt="wKiom1Rsx2uQYJZ5AAJplY08vOQ976.jpg" />


二、Ansible基礎安裝與配置

1、安裝ansible

為了快速部署,我們這裡不使用編譯安裝,我們使用epel源裡面的rpm包

# yum install ansible

2、配置hosts檔案

# vim /etc/ansible/hosts

我們可以看到有好多案例,我們可以注釋掉他們,或者刪掉他們,我們這裡注釋掉他們,在vim模式下

:%s/^\([^[:space:]#]\)/#\1/g

然後添加我們需要操作的主機,假設我就管理這兩台主機。

[webserver]10.0.0.1610.0.0.13

3、配置主機無密鑰登入

# ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.0.16

[email protected]‘s password: Now try logging into the machine, with "ssh ‘10.0.0.16‘", and check in:  .ssh/authorized_keysto make sure we haven‘t added extra keys that you weren‘t expecting.


三、案例測試


ansible <host-pattern> [-f forks] [-m module_name] [-a args]


1、對所管轄的主機進行Ping操作

# ansible all -m ping

10.0.0.13 | success >> {    "changed": false,     "ping": "pong"}10.0.0.16 | success >> {    "changed": false,     "ping": "pong"}

2、查看兩台主機的時間

# ansible all -a ‘date‘

10.0.0.16 | success | rc=0 >>Tue Nov 17 15:57:16 CST 201510.0.0.13 | success | rc=0 >>Tue Nov 17 15:57:17 CST 2015

註:完整命令是ansible all -m command -a ‘date‘,-m command預設可以省略

3、複製檔案

    命令ansible-doc -l可以查看很多可以操作的模組,具體查看某個模組操作用ansible-doc -s module,例如ansible-doc -s copy

# ansible webserver -m copy -a "src=/root/cmdline-jmxclient-0.10.3.jar dest=/root"

10.0.0.13 | success >> {    "changed": true,     "checksum": "98650e89f3c174b68971098618c2126b6cc1ab8b",     "dest": "/root/cmdline-jmxclient-0.10.3.jar",     "gid": 0,     "group": "root",     "md5sum": "ea665f2c562fc6aca3578cae46520b6d",     "mode": "0644",     "owner": "root",     "size": 20124,     "src": "/root/.ansible/tmp/ansible-tmp-1447747792.14-265823444157691/source",     "state": "file",     "uid": 0}10.0.0.16 | success >> {    "changed": true,     "checksum": "98650e89f3c174b68971098618c2126b6cc1ab8b",     "dest": "/root/cmdline-jmxclient-0.10.3.jar",     "gid": 0,     "group": "root",     "md5sum": "ea665f2c562fc6aca3578cae46520b6d",     "mode": "0644",     "owner": "root",     "size": 20124,     "src": "/root/.ansible/tmp/ansible-tmp-1447747792.15-265197722191280/source",     "state": "file",     "uid": 0}










本文出自 “小小水滴” 部落格,請務必保留此出處http://wangzan18.blog.51cto.com/8021085/1713543

CentOS 6.5 Ansible詳細部署

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

Tags Index: