about ansible 01

ansible簡介

一款輕量級的自動化運維軟件

為什么用ansible

  • Chef
    Ruby 語言編寫晌该,C/S架構(gòu)雷逆,配置需要Git依賴富拗,Recipe腳本編寫規(guī)范,需要一定編程經(jīng)驗
  • Saltstack
    Python編寫侣颂,C/S架構(gòu),模塊化枪孩,YAML腳本編寫規(guī)范憔晒,適合大規(guī)模集群部署
  • Ansible
    Python編寫,agentless(無客戶端),模塊化管理蔑舞,Playbook腳本編寫規(guī)范拒担,易于上手,適合中小規(guī)墓パ快速部署从撼,對敏捷開發(fā)十分友好

安裝

兩種方式實現(xiàn)安裝

  1. yum安裝(yum -y install ansible )
  2. git clone https://github.com/ansible/ansible.git
    這里我們采用 python3.6.5 + Virtualenv + ansible2.5 安裝ansible,使用虛擬環(huán)境的好處在這里不必多說钧栖。
1. 安裝Python3.6 和 pip 
2. 安裝 virtualenv
# pip install virtualenv 
3.  創(chuàng)建ansible賬戶并安裝python3.6版本virtualenv實例
# useradd deploy && su - deploy 
# virtualenv -p /usr/local/bin/python3 .py3-a2.5-env  # 在 deploy 賬戶家目錄下創(chuàng)建了名叫 .py3-a2.5-env 的虛擬環(huán)境
4. git 源代碼安裝ansible2.5
# cd /home/deploy/.py3-a2.5-env
# git clone https://github.com/ansible/ansible.git
# cd ansible && git checkout stable-2.5
5. 加載python3.6 virtualenv 環(huán)境
# source /home/deploy/.py3-a2.5-env/bin/activate
6. 安裝ansible依賴包
# pip install paramiko PyYAML jinja2
7. 在python3.6虛擬環(huán)境下加載ansible2.5
# source /home/deploy/.py3-a2.5-env/ansible/hacking/env-setup -q 
8. 驗證 ansible2.5
# ansible --version

playbooks 框架格式

01框架與格式.png
單看圖可能會有些懵逼低零,下面我們來詳細解釋
1. 創(chuàng)建一個 testplaybooksd 目錄
# mkdir /home/deploy/testplaybooks
2. 進入 testplaybooks 目錄
(1) 創(chuàng)建 inventory  # 這個目錄就可以用來放我們需要進行管理的主機清單
# mkdir inventory 
(2) 創(chuàng)建roles目錄 # 這個目錄就是用來存放具體任務(wù)的
# mkdir roles 
(3) 在inventory 里面創(chuàng)建一個 testenv文件 # 這個文件里就定義了被管理主機的一些信息和變量
vim inventory/testenv 
[testservers]   #  定義主機可以一個或多個
test.example.com

[testservers:vars]   # 定義變量,用法后面會講到
server_name=test.example.com
user=root
output=/root/test.txt
(4) 在roles下創(chuàng)建 testbox 并在 testbox 下創(chuàng)建tasks 用來存放具體任務(wù)
# mkdir roles/testbox/tasks
(5) 到 tasks 目錄下面創(chuàng)建 main.yml 文件用來編寫我們需要在被管理主機上執(zhí)行的任務(wù)
cd roles/testbox/tasks
vim mail.yml 
- name: print server name and user to remote testbox
  shell: "echo 'current {{user}} is logging {{server_name}}'" > {{output}}    
# 在這里桐经,任務(wù)名字就是就是我們定義的name后面的內(nèi)容毁兆,而第二行就代表 我們使用ansible的shell模塊去打印這句話并追加到我們定義的文件中,
#這里的{{user}},{{server_name}},{{output}}就是我們在 testenv #中定義的變量阴挣,{{變量名}} 是固定寫法

(6) 最后我們在我們的主目錄 testplaybooks 中气堕,編寫 deploy.yml 腳本作為我們執(zhí)行任務(wù)的入口
vim deploy.yml 
- hosts: "testservers"   # 這里的 testservers 就是我們在 testenv 中定義的被管理主機
  gather_facts: true  #  參數(shù)指定了在以下任務(wù)部分執(zhí)行前,是否先執(zhí)行setup模塊獲取主機相關(guān)信息
  remote_user: root  # 指定被管理主機的用戶
  roles:
    - testbox   # 指定任務(wù)

3.  so,我們定義的目錄結(jié)構(gòu)用樹狀圖表示就是這樣的
.
├── deploy.yml
├── inventory
│   └── testenv
└── roles
    └── testbox
        │   
        ├── tasks
        │   └── main.yml
  
4. 接下來畔咧,執(zhí)行我們的 YML 任務(wù)
ansible-playbook -i inventory/testenv deploy.yml
5.  看到如下輸出結(jié)果,就代表執(zhí)行成功
(.py3-a.2.5-env) [deploy@centos7-05 testplaybooks]$ ansible-playbook -i inventory/testenv deploy.yml 

PLAY [testservers] *************************************************************
TASK [Gathering Facts] *********************************************************
ok: [test.example.com]
TASK [testbox : print server name and user to remote testbox] ******************
changed: [test.example.com]
PLAY RECAP *********************************************************************
test.example.com           : ok=1   changed=1    unreachable=0    failed=0
6.   到 test.example.com 這臺主機下驗證
cat /root/test.txt 
current deploy is logging test.example.com
7. 完成

下一篇文章將介紹ansible的常用模塊茎芭,并demo演示用法

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市誓沸,隨后出現(xiàn)的幾起案子梅桩,更是在濱河造成了極大的恐慌,老刑警劉巖拜隧,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宿百,死亡現(xiàn)場離奇詭異,居然都是意外死亡洪添,警方通過查閱死者的電腦和手機垦页,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來干奢,“玉大人痊焊,你說我怎么就攤上這事。” “怎么了薄啥?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵辕羽,是天一觀的道長。 經(jīng)常有香客問我垄惧,道長刁愿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任赘艳,我火速辦了婚禮酌毡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蕾管。我一直安慰自己枷踏,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布掰曾。 她就那樣靜靜地躺著旭蠕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪旷坦。 梳的紋絲不亂的頭發(fā)上掏熬,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音秒梅,去河邊找鬼旗芬。 笑死,一個胖子當(dāng)著我的面吹牛捆蜀,可吹牛的內(nèi)容都是我干的疮丛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼辆它,長吁一口氣:“原來是場噩夢啊……” “哼誊薄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起锰茉,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤呢蔫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后飒筑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體片吊,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年协屡,在試婚紗的時候發(fā)現(xiàn)自己被綠了俏脊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡著瓶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情材原,我是刑警寧澤沸久,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站余蟹,受9級特大地震影響卷胯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜威酒,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一窑睁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧葵孤,春花似錦担钮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至宰啦,卻和暖如春苏遥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背赡模。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工田炭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人漓柑。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓教硫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親欺缘。 傳聞我的和親對象是個殘疾皇子栋豫,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容

  • ansible 系統(tǒng)架構(gòu) ansible簡介ansible是新出現(xiàn)的自動化運維工具,ansible是一個配置管理和...
    運維阿文閱讀 9,586評論 1 52
  • 簡介 架構(gòu) 原理 組成 ANSIBLE PLAYBOOKS:任務(wù)劇本(任務(wù)集)谚殊,編排定義Ansible任務(wù)集的配置...
    毛利卷卷發(fā)閱讀 1,062評論 0 2
  • 本文主要內(nèi)容均收集于網(wǎng)絡(luò)上的博文資料丧鸯,僅以此文作為學(xué)習(xí)總結(jié)。BTW嫩絮,目前Ansible對python3的支持還不是...
    qiuyi943閱讀 18,233評論 1 15
  • 運維核心工作: 操作系統(tǒng)安裝(物理機丛肢、虛擬機)--> 應(yīng)用程序包部署(安裝、配置剿干、服務(wù)啟動 )--> 批量操作 -...
    Net夜風(fēng)閱讀 1,525評論 0 4
  • 這兩天置尔, X博士的一篇《殘酷底層物語:一個視頻軟件的中國農(nóng)村》在朋友圈里刷了屏杠步,該文以一個軟件中,主要是農(nóng)村人為制...
    瀏如閱讀 1,484評論 16 26