簡單的自動化IT工具。Ansible基於Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程序部署、批量運行命令等功能。
Ansible只需要在一台普通的服務器上運行即可,不需要在被管控的服務器上安裝客戶端。因為它是基於SSH的,Linux服務器離不開SSH,所以Ansible不需要為配置工作添加額外的支持包含客戶端 (Agent) 。
Ansible在管理節點將Ansible模塊通過 SSH 協議(或者 Kerberos、LDAP)推送到被管理端執行,執行完之後自動刪除。
#==修改「電腦」名稱 ( ansible )====
hostnamectl set-hostname ansible
#==關閉「selinux 」======
#關閉「Selinux」為「disabled」才不會阻擋「服務連線」服務
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
#====需要「Reboot」重開機====
reboot -h now
#=安裝「epel-release」yum 源
sudo yum install epel-release -y
#=安裝「ansible」
sudo yum install ansible -y
一. 「Ansible」 加入「監控主機」
#配置「hosts」文檔
vi /etc/ansible/hosts
#「servers」=「group」(群組),ansible 可以指定「群組」或「單一節點」主機
[servers]
192.168.8.50 ansible_ssh_user=test ansible_ssh_pass=test ansible_ssh_port=22
192.168.8.51 ansible_ssh_user=test ansible_ssh_pass=test ansible_ssh_port=22
#「servers」=「group」(群組),ansible 可以指定「群組」或「單一節點」主機
[servers]
192.168.8.50 ansible_ssh_user=test ansible_ssh_pass=test ansible_ssh_port=22
192.168.8.51 ansible_ssh_user=test ansible_ssh_pass=test ansible_ssh_port=22
#設定 「Ansible」配置文檔 ( 關閉 SSH KEY 驗證 )
vi /etc/ansible/ansible.cfg
[defaults]
host_key_checking = false
vi /etc/ansible/ansible.cfg
[defaults]
host_key_checking = false
二.「Ansible」(Ad-Hoc command) 簡易「指令」
#修改「單節點」主機「名稱」
#修改「單節點」主機「名稱」
ansible 192.168.8.50 -m hostname -a "name=python"
#修改「單節點」主機「端口」服務
#修改「單節點」主機「端口」服務
ansible 192.168.8.51 -m command -a 'netstat -ltunp'
#修改「單節點」主機「網卡」
#修改「單節點」主機「網卡」
ansible 192.168.8.51 -m command -a 'ifconfig'
#修改「單節點」關閉「selinux」
#修改「單節點」關閉「selinux」
ansible 192.168.8.51 -m selinux -a 'state=disabled'
#修改「單節點」重啟「主機」
#修改「單節點」重啟「主機」
ansible 192.168.8.51 -m command -a 'reboot -h now'
#測試「Ping」群組「servers」節點主機
#測試「Ping」群組「servers」節點主機
ansible servers -m ping
#複製 來「源」到 目「的」檔案 並 賦予「權限」
#複製 來「源」到 目「的」檔案 並 賦予「權限」
ansible servers -m copy -a "src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg owner=root group=root mode=0644"
#下載「URL」(HTTP) 檔案
#下載「URL」(HTTP) 檔案
ansible servers -m get_url -a 'url=http://releases.ansible.com/ansible/ansible-1.1.tar.gz dest=/opt/'
三.「Ansible」派送「Shell」腳本
#給予「腳本」執行「權限」
chmod +x /opt/ansible_test.sh
#給予「腳本」執行「權限」
chmod +x /opt/ansible_test.sh
#複製 來「源」到 目「的」腳本 並 賦予「權限」
ansible servers -m copy -a "src=/opt/ansible_test.sh dest=/opt/ owner=root group=root mode=0755"
#指定「群組」執行「ansible_test.sh」檔案
ansible servers -m shell -a "/opt/ansible_test.sh"
四.「Ansible」派送「*.yml」腳本
Ansible 使用 Playbook 進行「yml」派送,Playbooks 有五個組成結構。
Variables - 變量元素,可傳遞給Tasks/Templates使用
Tasks - 任務元素,即調用模塊完成任務
Templates - 模板元素,可根據變量動態生成配置文件
Hadlers - 處理器元素,通常指在某事件滿足時觸發的操作
Roles - 角色元素
==相關範例如下==
#建立「yml」描述檔
vi /opt/test.yml
- hosts: 192.168.8.51
#==執行「任務」
tasks:
#===Yum「java」安裝
- name: yum install java
yum:
name: java
state: latest
參考資料
「运维那点事 运维开发 DBA 分享平台」-「Ansible第一篇:介绍及安装」
「官方網站」-「http://docs.ansible.com/」