Ansible安裝簡介
阿新 • • 發佈:2018-12-09
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工作原理
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