Ansible 基礎入門及安裝 原

Ansible :一個配置管理和IT自動化工具
ansible是新出現的自動化運維工具,基於Python開發,集合了衆多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程序部署、批量運行命令等功能。
ansible是基於模塊工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所運行的模塊,ansible只是提供一種框架。主要包括:
(1)、連接插件connection plugins:負責和被監控端實現通信;
(2)、host inventory:指定操作的主機,是一個配置文件裏面定義監控的主機;
(3)、各種模塊核心模塊、command模塊、自定義模塊;
(4)、藉助於插件完成記錄日誌郵件等功能;
(5)、playbook:劇本執行多個任務時,非必需可以讓節點一次性運行多個任務。
ansible 的特點就在於它的簡潔。讓 ansible 在主流的配置管理系統中與衆不同的一點便是,它並不需要你在想要配置的每個節點上安裝自己的組件。同時提供的一個優點在於,如果需要的話,你可以在不止一個地方控制你的整個基礎架構。最後一點是它的正確性,或許這裏有些爭議,但是我認爲在大多數時候這仍然可以作爲它的一個優點。
Ansible是一個簡單的自動化運維管理工具,基於Python語言實現,由Paramiko和PyYAML兩個關鍵模塊構建,可用於自動化部署應用、配置、編排task(持續交付、無宕機更新等)。
1.Ansible優點:
Agentless,去中心化
Stupied Simple ,上手簡單,學習曲線平滑
SSH by default ,安全,無需安裝客戶端
配置簡單、功能強大、擴展性強
支持API及自定義模塊,可通過Python輕鬆擴展
通過Playbooks來定製強大的配置、狀態管理
提供一個功能強大、操作性強的Web管理界面和REST API接口——AWX平臺
冪等性:一種操作重複多次結果相同

Ansible核心組件說明:
Ansible:Ansible的核心程序
Host Inventory:記錄了每一個由Ansible管理的主機信息,信息包括ssh端口,root帳號密碼,ip地址等等。可以通過file來加載,可以通過CMDB加載
Playbooks:YAML格式文件,多個任務定義在一個文件中,使用時可以統一調用,“劇本”用來定義那些主機需要調用那些模塊來完成的功能.
Core Modules:Ansible執行任何管理任務都不是由Ansible自己完成,而是由核心模塊完成;Ansible管理主機之前,先調用core Modules中的模塊,然後指明管理Host Inventory中的主機,就可以完成管理主機。
Custom Modules:自定義模塊,完成Ansible核心模塊無法完成的功能,此模塊支持任何語言編寫。
Connection Plugins:連接插件,Ansible和Host通信使用

playbooks 是 Ansible的配置,部署,編排語言.他們可以被描述爲一個需要希望遠程主機執行命令的方案,或者一組IT程序運行的命令集合. 如果 Ansible 模塊你是工作室中的工具,那麼 playbooks 就是你設置的方案計劃. 在基礎層面, playbooks 可以被用來管理用於部署到遠程主機的配置文件.在更高的層面上,playbooks 可以依次對多層式架構上的服務器執行上線包括滾動更新在內的操作並可以將操作委託給其他主機包括在此過程中發生的與監視服務器,負載均衡服務器的交互操作在內.

1、檢查python版本

2、啓動運行
從源碼運行ansible
[root@server01 ansible]# source ./hacking/env-setup
running egg_info
creating lib/ansible.egg-info
writing requirements to lib/ansible.egg-info/requires.txt
writing lib/ansible.egg-info/PKG-INFO
writing top-level names to lib/ansible.egg-info/top_level.txt
writing dependency_links to lib/ansible.egg-info/dependency_links.txt
writing manifest file 'lib/ansible.egg-info/SOURCES.txt'
reading manifest file 'lib/ansible.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
no previously-included directories found matching 'hacking'
warning: no files found matching 'SYMLINK_CACHE.json'
writing manifest file 'lib/ansible.egg-info/SOURCES.txt'

Setting up Ansible to run out of checkout...

PATH=/usr/local/ansible/bin:/usr/local/ansible/test/runner:/usr/local/erlang/bin:/usr/local/jdk1.8.0_66/bin:/usr/local/jdk1.8.0_66/bin:/usr/local/jdk1.8.0_66/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/usr/local/erlang/bin:/root/bin
PYTHONPATH=/usr/local/ansible/lib:
MANPATH=/usr/local/ansible/docs/man:

Remember, you may wish to specify your host file with -i

Done!

3、創建配置遠程服務器信息列表
[root@server01 ansible]# cat /etc/ansible/hosts
[webservices]
192.168.42.102

4、測試運行
[root@server01 ansible]# ansible all -m ping
192.168.42.102 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
[root@server01 ansible]# ansible all -a "/bin/echo hello"
192.168.42.102 | SUCCESS | rc=0 >>
hello

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章