ansible 原理 面試


ansible 簡介 

ansible是一款自動化的運維工具基於Python語言實現,由Paramiko和PyYAML兩個關鍵模塊構建,可用於自動化部署應用、配置、編排task(持續交付、無宕機更新等)

 

組件:

  • Host Lnventory [ˈɪnvəntri]:記錄了每一個由Ansible管理的主機信息,信息包括ssh端口,root帳號密碼,ip地址等等。可以通過file來加載,可以通過CMDB加載
  • Playbooks:YAML格式文件,多個任務定義在一個文件中,使用時可以統一調用,“劇本”用來定義那些主機需要調用那些模塊來完成的功能.
  • Core Modules 英 /kɔː(r)/ Ansible執行任何管理任務都不是由Ansible自己完成,而是由核心模塊完成;Ansible管理主機之前,先調用core Modules中的模塊,然后指明管理Host Lnventory中的主機,就可以完成管理主機。
  • Custom Modules英 /ˈkʌstəm/ 自定義模塊,完成Ansible核心模塊無法完成的功能,此模塊支持任何語言編寫。

作用:

優點:

  • 部署簡單,只需在主控端部署Ansible環境,被控端無需做任何操作;
  • 默認使用SSH協議對設備進行管理;
  • 冪等性  保證我們重復同一樣操作的時候,得到的結果是一樣的
  • 通過Playbooks來定制強大的配置、狀態管理;
  • 支持API及自定義模塊,可通過Python輕松擴展;

返回值顏色:

  • 紅色 報錯
  • 黃色 成功 更改了
  • 綠色 成功 說明可能執行第二次了 沒有更改但也成功了因為冪等性可以多次執行還能保證狀態
  • 紫色

 

配置文件:

/etc/ansible/hosts //配置主機組  配置可以使用YAML(一種標記語言)或者INI

 

 

 

 

 

 

基礎命令:

  • -m : 使用什么模塊
  • -a : 使用模塊中的參數
  • -h : 幫助信息 
  • -C: 測試一下不會真的執行

 

模塊: (ansible-doc -l 可以看到模塊的名稱和大概功能 -s 可以看單個模塊的使用方法)

1.單個模塊使用格式 (testA是主機組的名稱)

2.學會看ansible-doc信息

標黃色的地方是模塊的作用 紅色線標注的地方是模塊的選項 required是必須選項

 

 

 3.常見模塊

  • 1 ping  //測試ansible 運行時主機之間是否連通

  • 2 fetch //從遠程主機拉取文件

  • 3 copy //復制模塊
  • 4 file //  對文本的基本操作 創建文件目錄修改刪除 權限 軟連接硬鏈接
  • 5 blockinfile //在指定文本插入一段文本 是被標記過的 以后可以通過標記修改刪除會添加這樣一段文字
  •  

     6 lineinfile //確保某一行文本在指定文本中 刪除或替換

  • 7 find //尋找模塊
  • 8 replace //通過正則表達式替換文件中的字符串
  • 9 command //和shell差不多但是識別不了管道符,;大於號小於號
  • 10 shell   //可以通過遠程主機上的/bin/sh處理
  • 11 script //遠程執行ansible主機上的腳本
  • 12 cron //相當於crontab 定時任務
  • 13 service  //服務 關閉開啟
  • 14 user //用戶 創建,刪除修改
  • 15 group //查看遠程主機上的組
  • 16 yum_repository // 查看本地yum倉庫
  • 17 yum  //下載模塊

4 playbook 里面的使用:

檢查語法錯誤試運行

 

 

 

 

 

 

4.1YAML 語法:

  • ”---“代表文檔開始
  • 第二行”-“ 開頭 “-” 后面要有空格
  • :后面一定要有空格
  • 是不能用tab鍵縮進的 vim編輯器自動設置為空格
  • 每一個任務都要用 “-”開頭

4.2 關鍵字:

  • hosts: //主機之間用逗號隔開
  • tasks: //任務列表
  • name: // 執行的時候會輸出關鍵字
  • handlers //notify 調用
  • tags //打標簽方便單獨執行

 

 

 

 

 

 

 

  • 特殊tag  always //總是執行 當沒有被調用的時候也執行
  • 特殊tag   never 2.5版本
  • 特殊tag    tagged// 只有執行標簽任務的時候執行別的時候不執行
  • 特殊tag untagged //
  • 特殊tag all //所有任務

 

 

 

面試題:()

1.Ansible 判斷文件存在

 

2.Ansible 部署過什么

3Ansible的優勢


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM