1. 程式人生 > >運維神器 ansible 安裝部署

運維神器 ansible 安裝部署

系統/運維 Linux

抽空研究下自動運維神器 ,ansible ,基於SSH的管理,不需要agent

技術分享圖片

  • 核心:ansible
  • 核心模塊(Core Modules):這些都是ansible自帶的模塊?
  • 擴展模塊(Custom Modules):如果核心模塊不足以完成某種功能,可以添加擴展模塊
  • 插件(Plugins):完成模塊功能的補充
  • 劇本(Playbooks):ansible的任務配置文件,將多個任務定義在劇本中,由ansible自動執行
  • 連接插件(Connectior Plugins):ansible基於連接插件連接到各個主機上,雖然ansible是使用ssh連接到各個主機的,但是它還支持其他的連接方法,所以需要有連接插件
  • 主機群(Host Inventory):定義ansible管理的主機


原理圖

技術分享圖片

技術分享圖片

安裝完ansible後,發現ansible一共為我們提供了七個指令:ansible、ansible-doc、ansible-galaxy、ansible-lint、ansible-playbook、ansible-pull、ansible-vault 。這裏我們只查看usage部分,詳細部分可以通過 “指令 -h” 的方式獲取。

實驗機的centos python有些問題,即便是更新了EPEL 用的還是2.4.0的,用github的30M一直下不來,換成ubuntu繼續試驗,不過實驗結束之後發現centos yum不支持python 2.7 而ansible又需要這個庫,所以免費的軟件後期維護成本比較大

$ sudo apt-get install software-properties-common

$ sudo apt-add-repository ppa:ansible/ansible

$ sudo apt-get update

$ sudo apt-get install ansible

技術分享圖片

技術分享圖片

ansible all -m shell -a "hostname" --ask-pass -i /etc/ansible/hosts

技術分享圖片

新的2臺服務器沒有key

第一次鏈接的時候會提示

技術分享圖片

ubuntu 的編輯器有些怪,讓我先修一下

sudo apt-get remove vim-common sudo apt-get install vim

sudo vi /etc/ansible/ansible.cfg

#ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s

ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no

技術分享圖片

sudo vi /etc/ansible/ansible.cfg

host key 檢查改為false

技術分享圖片

居然拒絕了

技術分享圖片

我先生成個key

ssh-keygen

技術分享圖片

ssh-copy-id pcdog@ansible2

技術分享圖片

ansible 192.168.209.146 -a ‘uptime‘

技術分享圖片

可以看到受控機器的啟動時間

ansible -m ping all

技術分享圖片

可以看到2臺機器都已經可以ping通了

在/etc/ansible/hosts中把2臺服務器合並到一個lab組中


技術分享圖片

一組相似的 hostname , 可簡寫如下:

[webservers] www[01:50].example.com

數字的簡寫模式中,01:50 也可寫為 1:50,意義相同.你還可以定義字母範圍的簡寫模式:

[databases] db-[a:f].example.com


ansible lab -m command -a ls

技術分享圖片

同時可以列目錄了

ansible有Patterns的規則

ansible <pattern_goes_here> -m <module_name> -a <arguments>

換成命令

ansible webservers -m service -a "name=httpd state=restarted"

可以同時對一個組執行某些服務的啟動

具體的看官方文檔。。。。

http://docs.ansible.com/ansible/latest/intro_patterns.html


相對來說ansible 管理起來還是比較簡單,應用搭建過程不超過6個小時,大部分的維護命令需要寫在playbook裏面,我就不一一具體介紹了

http://docs.ansible.com/ansible/latest/playbooks.html

運維神器 ansible 安裝部署