ansible是乙個簡單的自動化引擎,可完成配置管理、應用部署、服務編排以及各種it需求。它是一款使用python語言開發實現的開源軟體,其依賴jinjia2、paramiko和pyyaml這幾個python庫。
ansible安裝部署簡單,只需要再主控端部署ansible環境,被控端無須做任何操作,基於ssh進行配置管理。ansible作為自動化系統運維的一大利器,在構建整個體系過程中有這舉足輕重的地位。其簡單易用、易於安裝、功能強大、便於分享、內含大量模板等都是它的魅力所在,再加上易封裝、介面呼叫方便,ansible正在被越來越多的大公司採用。
ansible使用python語言開發,我們可以直接使用pip進行安裝,也可以用linux下的包管理工具(如yum、apt-get)進行安裝
pip install ansible #主控端安裝即可
角色ip
主機名使用者
主控端192.168.88.1
c1.heboan.com
heboan
被控端192.168.88.2
c2.heboan.com
heboan
被控端192.168.88.3
c3.heboan.com
heboan
主控端生成ssh證書,並分發給被控端,使得主控端可以免密連線被控端
[heboan@c1 ~]$ ssh-keygen -t rsa[heboan@c1 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.88.2[heboan@c1 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.88.3
使用ansible操作遠端伺服器時 ,首先需要確定是操作哪些伺服器,然後再確定對這些伺服器執行哪些操作。ansible缺省會讀取/etc/ansible/hosts檔案中配置的伺服器列表,例如/etc/ansible/hosts檔案內容如下:
[heboan@c1 ~]$ cat /etc/ansible/hosts[test]
192.168.88.2
192.168.88.3
ansible中存在乙個名為ping的模組,該模組並不是測試伺服器的網路連線是否正常,而是嘗試建立ssh連線,以便驗證使用者的ssh配置是否已經正確
[heboan@c1 ~]$ ansible test -m ping192.168.88.3 | success =>
192.168.88.2 | success =>
test :代表我們定義的兩台伺服器
-m:指定了需要操作的模組
ping:s是乙個模組的名稱
ansible預設使用當前的使用者和預設的22號埠與遠端 伺服器建立ssh連線,如果需要使用其他使用者,或者非預設的ssh埠號,可以在host之後新增使用者名稱或埠號的配置
[heboan@c1 ~]$ cat /etc/ansible/hosts[test]
192.168.88.2 ansible_user=heboan ansible_port=2202
192.168.88.3 ansible_user=heboan ansible_port=2202
一般情況下,工作環境中的伺服器ssh使用者和ssh埠都相同,如果有很多遠端伺服器,每一台伺服器都需要配置ansible_user或ansible_port引數,如果依然使用上面的方式配置,會顯得非常冗餘。ansible預設使用/etc/ansible/ansible.cfg檔案,可以設定一些預設值,這樣就不需要對同樣的內容輸入多次
[heboan@c1 ~]$ cat /etc/ansible/ansible.cfg[defaults]
remote_port = 2202remote_user = heboan
ansible安裝部署
一 ansible介紹 1 簡介 ansible是新出現的自動化運維工具,基於python開發,集合了眾多運維工具 puppet cfengine chef func fabric 的優點,實現了批量系統配置 批量程式部署 批量執行命令等功能。ansible是基於模組工作的,本身沒有批量部署的能力。...
使用 Ansible 安裝部署 TiDB
tidb 作為乙個分布式資料庫,在多個節點分別配置安裝服務會相當繁瑣,為了簡化操作以及方便管理,使用自動化工具來批量部署成為了乙個很好的選擇。ansible 是基於 python 研發的自動化運維工具,糅合了眾多老牌運維工具的優點實現了批量作業系統配置 批量程式的部署 批量執行命令等功能,而且使用簡...
ansible的安裝及部署
部署ansible 後記ansible是一款開源自動化平台,是乙個配置管理工具,自動化運維工具 ansible命令相當於linux命令 ansible是基於模組開發的,常用的20 30個 yaml語法是自帶語法 playbook 劇本 相當於指令碼 ansible roles 角色 一大堆指令碼 1...