1. 程式人生 > >Ansible安裝簡介

Ansible安裝簡介

Ansible簡介

Ansible是一個配置管理和配置工具,類似於Chef,Puppet或Salt。這是一款很簡單也很容易入門的部署工具,簡單的說是一個配置管理系統(configuration management system)。你只需要可以使用 ssh 訪問你的伺服器或裝置就行。它也不同於其他工具,因為它使用推送的方式,而不是像 puppet 等 那樣使用拉取安裝agent的方式。利用它可以將程式碼部署到任意數量的伺服器上!

Ansible應用

批量部署

ansible可以幫助我們完成一些批量任務,或者完成一些需要經常重複的工作。
比如:同時在100臺伺服器上安裝nginx服務,並在安裝後啟動它們。
比如:將某個檔案一次性拷貝到100臺伺服器上。
比如:每當有新伺服器加入工作環境時,你都要為新伺服器部署某個服務,也就是說你需要經常重複的完成相同的工作。

Ansible特點

 模組化:呼叫特定的模組,完成特定任務
 有Paramiko,PyYAML,Jinja2(模板語言)三個關鍵模組
 支援自定義模組
 基於Python語言實現
 部署簡單,基於python和SSH(預設已安裝),agentless
 安全,基於OpenSSH
 支援playbook編排任務
 冪等性:一個任務執行1遍和執行n遍效果一樣,不因重複執行帶來意外情況
 無需代理不依賴PKI(無需ssl)
 可使用任何程式語言寫模組
 YAML格式,編排任務,支援豐富的資料結構
 較強大的多層解決方案

Ansible工作原理

Ansible安裝簡介

 PLAYBOOKS:任務劇本(任務集),編排定義Ansible任務集的配置檔案,由Ansible順序依次執行,通常是JSON格式的YML檔案
 INVENTORY:Ansible管理主機的清單/etc/anaible/hosts
 MODULES:Ansible執行命令的功能模組,多數為內建的核心模組,也可自定義,ansible-doc –l 可檢視模組
 PLUGINS:模組功能的補充,如連線型別外掛、迴圈外掛、變數外掛、過濾外掛等,該功能不常用
 API:供第三方程式呼叫的應用程式程式設計介面
 ANSIBLE:組合INVENTORY、 API、 MODULES、PLUGINS的綠框,可以理解為是ansible命令工具,其為核心執行工具

注意事項

 執行ansible的主機一般稱為主控端,中控,master或堡壘機
 主控端Python版本需要2.6或以上
 被控端Python版本小於2.4需要安裝python-simplejson
 被控端如開啟SELinux需要安裝libselinux-python
 windows不能做為主控端

Ansible安裝

安裝ansible

# yum install -y ansible

Inventory檔案

配置第一臺測試機器Inventory檔案
# vim /etc/ansible/hosts       (Inventory 檔案的位置)
...
...
...
末尾新增以下內容:

[server1]       ##定義了一個組名   

192.168.61.130 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=redhat     ##定義一臺客戶機

測試

# ansible 192.168.61.130 -a uptime
192.168.61.130 | SUCCESS | rc=0 >>
20:34:20 up  1:03,  2 users,  load average: 0.00, 0.01, 0.05

# ansible server1 -a uptime
192.168.61.130 | SUCCESS | rc=0 >>
 20:46:53 up  1:15,  2 users,  load average: 0.08, 0.03, 0.05