雲計算實操訓練營(五):《自動化運維ansible部署及應用》

課前思考:

瞭解什麼是ansible?

Ansible能做什麼?

為什麼要使用自動化運維工具?

Ansible的優點有哪些?

什麼是ansible


幾乎萬能的自動化工具!

Ansible基於Python語言實現,由paramiko和PyYAML兩個關鍵模塊構建。ansible主要承擔的工作有以下幾種:

  • 配置管理
  • 服務即時開通
  • 應用部署
  • 流程編排
  • 監控告警
  • 日誌記錄


雲計算實操訓練營(五):《自動化運維ansible部署及應用》


自動化運維工具對比


Ansible、Puppet、SaltStack技術特性比較表


雲計算實操訓練營(五):《自動化運維ansible部署及應用》


Ansible優點


  • Agentless,去中心化
  • Stupied Simple ,上手簡單,學習曲線平滑
  • SSH by default ,安全,無需安裝客戶端
  • 配置簡單、功能強大、擴展性強
  • 支持API及自定義模塊,可通過Python輕鬆擴展
  • 通過Playbooks來定製強大的配置、狀態管理
  • 提供一個功能強大、操作性強的Web管理界面(ansible tower)


playbooks


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


Ansible架構


雲計算實操訓練營(五):《自動化運維ansible部署及應用》


Ansible模塊


  • ansible-doc –l
  • Ansible已經開發近1000+的模塊
  • Ansible的社區熱度高
  • 參與開發者眾多
  • 1000+模塊覆蓋大量的運維需求


ansible安裝配置


  • yum install -y ansible
  • mkdir /home/student/dep-install
  • cd /home/student/dep-install
  • 創建清單文件,指明要管理的主機
  • /home/student/dep-install/inventory
  • [dev]
  • servera.lab.example.com
  • ansible dev -i inventory --list-hosts


使用ansible配置文件


雲計算實操訓練營(五):《自動化運維ansible部署及應用》


examples:

  • [defaults]
  • inventory = ./inventory
  • 這個參數表示資源清單inventory文件的位置,資源清單就是一些Ansible需要連接管理的主機列表。·
  • remote_user = someuser
  • ask_pass = false
  • [privilege_escalation]
  • become = true
  • become_method = sudo
  • become_user = root
  • become_ask_pass = false


Ad-hoc


  • ansible everyone -m ping
  • ansible -m user -a 'name=newbie uid=4000 state=present'
  • servera.lab.example.com


  • ansible mymanagedhosts -m command -a /usr/bin/hostname


  • ansible localhost -m copy -a 'content="Managed by
  • Ansible\\n" dest=/etc/motd' -u devops


  • ansible localhost -m copy -a 'content="Managed by
  • Ansible\\n" dest=/etc/motd' -u devops --become


創建playbooks


Ansible的playbook文件格式為YAML語法,所以在編寫playbook之前對YAML語法有一定的瞭解,否則在運行playbook的時候會經常碰到語法錯誤的提示。


雲計算實操訓練營(五):《自動化運維ansible部署及應用》


Demo: 運行一個web服務器


雲計算實操訓練營(五):《自動化運維ansible部署及應用》


Demo: 多主機的任務


雲計算實操訓練營(五):《自動化運維ansible部署及應用》


Demo:安裝LAMP

  • 配置sudo
  • 創建ssh密鑰
  • 編寫playbook
  • 測試playbook
  • 運行playbook
  • 使用的模塊:yum service lineinfile


Demo:安裝LAMP


雲計算實操訓練營(五):《自動化運維ansible部署及應用》

需要課件的小夥伴,①請“關注+轉發”,②點擊“私信”給小編,回覆“雲計算”即可獲取。

雲計算實操訓練營(五):《自動化運維ansible部署及應用》


分享到:


相關文章: