1-1·Ansible簡介、自動化介紹

一·Introduction Ansible

1)什麼是Ansible?

  1. Ansible是一款開源的配置管理和編配的實用程序,可以對遠程主機與虛擬機進行自動化與標準化配置
  2. 編配功能使Ansible能夠協調多層級的應用的啓動和關閉
  3. 管理員可以創建play,執行一系列的任務,作用與play中指定的一臺或一組主機
  4. 包含多個play的文件成爲playbook
  5. ansible的架構是無代理的。當ansible執行時,將推送到遠程主機上執行
  6. Modules是執行play中任務的程序。ansible附帶了數百個核心模塊
  7. ansible非常易用。在python基礎上構建。ansible受到Vagrant和Jenkins等多種Devops工具的支持

2)ansible的不足:

  1. ansible可以在安裝中添加軟件包,但無法執行系統的初始最小安裝
  2. ansible可以糾正配置偏差,但不能對此進行監控
  3. ansible不能跟蹤系統上的文件出現更改,建議通過版本控制軟件或審計系統進行跟蹤

3)Ansible的概念與架構:

  1. ansible架構中有兩種計算機類型:控制節點與受管主機
  2. ansible軟件安裝在控制節點上,所有組件也在控制節點上維護
  3. 受管主機列在主機清單文本文件中,位於控制節點上,含有受管主機名稱或域IP列表
  4. ansible使用SSH域受管主機進行通訊。playbook中運用的模塊將複製到受管主機,然後使用playbook指定參數順序執行
  5. 用戶可按需自定義模塊,但ansible的核心模塊能夠執行大部分系統管理任務

4)控制節點的角色與要求

● 系統管理員
● Ansible安裝在控制節點,並進行維護
● 支持python2.6以上
● 對於紅帽Linux需安裝Ansible及其依賴包
● Windows目前不支持控制節點

4-1)受管主機角色與要求

● 受管主機是Ansible登錄,安裝模塊並執行遠程命令進行配置任務的系統
● Ansible使用SSH與受管主機通信,因此必須有openssl和配置ssh允許
● 建議python2.5以上版本
● RHEL6、7

5)Ansible用例

● Ansible可以部署和遠程操控遠程主機的配置文件。這些文件爲靜態的,也可利用模板實時創建
● Ansible也可以用作多節點的部署工具
● playbook可以定義遠程計算機上的安裝和配置的應用。可以統一構建playbook,將他應用到多臺計算機上
● 按照Ansible的規則編配多節點應用
● 運行臨時(ad-hoc)命令,使Ansible在遠程主機上執行

6)CHOOSE~

1.which of the following programming languages is ansible built on?
python
2.which of the following terms best describes ansible's architecture?
Agentless
3.what us the network protocol that ansible users,  by default,  to communicate with managed nodes?
SSH
4.which of the following files define the actions ansible performs on managed nodes?
playbook
5.what syntax is used to  define ansible playbooks?
YAML

6)Ansible部署

● ansible可簡化服務器上的軟件配置
● 當ansible訪問受管主機,可以探查運行的RHEL版本
● ansible playbook可用於同意構建開發、測試和生產服務器
● kickstart可以準備好符合條件的裸機服務器,讓ansible的接管並搭建

7)ansible的配置方法

ansible用於完成服務器的調配。編寫playbook
1. 配置軟件倉庫
2. 安裝應用
3. 修改配置文件,從版本控制器選擇性下載
4. 防火牆開端口
5. 啓動服務
6. 測試工作
7. 更新工具

8)Ansible連接插件

● 連接插件使得ansible能夠與受管主機和雲提供商通信
● 對於新版本首選SSH
● 控制節點上的openssh支持ansible的連接方式
● 最常見的做法就是通過SSH用戶祕鑰來獲取主機管理權限
● 另一種鏈接插件就是local,用於本地管理ansible,而不必實用ssh。在編寫雲服務API接口時,通常使用這一方式,ansible由本地cron調用也可使用
● paramiko ansible鏈接用於RHEL6計算機。是一個基於python的openSSH,是較舊系統的解決方案。可降低ssh開銷
● winrm ansible鏈接Windows的主機爲受管主機,linux上一般不用
● ansible2引入了docker鏈接插件。docker主機可以充當ansible控制節點,其容器爲受管主機,這種鏈接不需要SSH


9)CHOOSE~

1.The  paramiko ansible connection plugin is used to communicate with which type of managed host?
RHEL 6

10)Ansible清單

● 主機清單定義,受管主機
● 主機可以從屬於組
● 一個主機可以是多個組
● 可以通過兩種方式定義主機清單:溫文本文件靜態主機,或從外部提供商動態生成
● 主機清單位置在/etc/ansible/hosts

$ vim /etc/ansible/hosts

[webservers]
localhost       ansible_connection=local
web1.example.com
web2.example.com:1234   ansible_user=ftaylor
192.168.3.7

[db-servers]
web1.example.com
db1.example.com

主機清單可以包含多個主機構成的組,這通過:children後綴實現

[all:children]
webservers
db-servers

可以通過指定主機範圍來簡化Ansible的主機清單

[start:end]
例:192.168.[4:7].[0:255]                 //網段4~7的所以IP   

server[01:20].example.com               //server1~server20所有主機

可使用ansible命令測試計算機是否在清單中

11)動態主機清單

● 可以動態生成Ansible主機清單信息
● 動態清單信息的來源包括公共/私有云提供商
● ansible含有處理來自最常見的提供商的動態主機 AmazonEC2.aliyunECS3
● 對於雲提供商,必須在腳本能夠訪問的文件中定義身份驗證和訪問權限信息

3)Choice~

1.Which of the following items is in an Ansible inventory file?
  1. Host groups
  2. IP address ranges
  3. Variable definitions
  4. user authentication information

2.What is the term this course users for a host from which system administrators run Ansible ?
Control node!

3.The python-simplejson package must be installed on which kind of host?
RHEL 5

4.What is the default localtion of the static system-wide Ansible inventroy file?
/etc/ansible/hosts
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章