Vagrant開發(fā)運(yùn)維實(shí)戰(zhàn)
Vagrant是一款開源軟件,它允許開發(fā)者以編程的方式管理虛擬機(jī),幫助團(tuán)隊(duì)之間共享開發(fā)環(huán)境。本書不僅介紹Vagrant的各個(gè)知識(shí)點(diǎn),還包含很多相關(guān)生態(tài)的應(yīng)用技巧。本書前8章以循序漸進(jìn)的方式介紹Vagrant的各個(gè)功能點(diǎn)和特性,后6章則詳細(xì)介紹5種主流配置管理工具(Ansible、Chef、Docker、Puppet和Salt),以及它們是如何與Vagrant協(xié)同工作的。閱讀完本書,相信讀者一定能有所收獲。
本書可供Vagrant開發(fā)與運(yùn)維的初學(xué)者閱讀,已經(jīng)對(duì)Vagrant有所了解的讀者在閱讀本書后也將更好地理解和使用Vagrant。無論讀者處于什么水平,通過學(xué)習(xí)本書講解的知識(shí)點(diǎn)和應(yīng)用技巧,可以有所收獲。
1.本書以循序漸進(jìn)的方式介紹了Vagrant的各個(gè)功能點(diǎn)和特性,還包含很多相關(guān)生態(tài)的應(yīng)用技巧。
2.本書先介紹如何使用強(qiáng)大的 DevOps 工具 Vagrant,并概述它如何適應(yīng) DevOps 環(huán)境。掌握基礎(chǔ)知識(shí)后,本書將幫助讀者了解如何配置 Vagrant 以及網(wǎng)絡(luò)。
3.本書提供了對(duì)配置 Shell 腳本的解析,還將指導(dǎo)讀者學(xué)習(xí)如何配合使用Vagrant 和配置管理工具(如 Chef、Ansible、Docker、Puppet 和 Salt)。
4.本書可同時(shí)作為Vagrant的入門書籍或已掌握基礎(chǔ)知識(shí)的讀者的進(jìn)階讀物,掃碼可獲配套源代碼。
5.從本書中讀者將學(xué)到以下主要內(nèi)容:
● Vagrant 提供的開發(fā)特性;
● 在 Windows、macOS 和 Linux 上安裝 Vagrant 和 VirtualBox;
● 利用 Vagrant 創(chuàng)建強(qiáng)大的開發(fā)環(huán)境;
● 使用 Docker、Chef 和 Puppet 等 DevOps 工具;
● 了解關(guān)于 Vagrant 的相關(guān)知識(shí),包括網(wǎng)絡(luò)、插件和配置;
● 使用 Vagrant Cloud 安裝和管理 Vagrant box。
Alex Braunton是一位熱情的網(wǎng)絡(luò)開發(fā)人員,他為中小型企業(yè)構(gòu)建,部署和維護(hù)復(fù)雜的Web應(yīng)用程序。他喜歡探索新技術(shù)并創(chuàng)建有關(guān)他們的YouTube教程視頻。他有很多的視頻基于Vagrant。在技術(shù)領(lǐng)域之外,亞歷克斯是一個(gè)自認(rèn)為盆景的愛好者,喜歡自然散步。
第 1章 簡介 1
1.1 從Vagrant和DevOps開始 1
1.1.1 走進(jìn)Vagrant世界 2
1.1.2 Vagrant的優(yōu)點(diǎn) 3
1.1.3 什么是VirtualBox 4
1.1.4 什么是DevOps 5
1.2 DevOps中的Vagrant 5
1.2.1 Vagrant在DevOps中的開發(fā)狀態(tài) 5
1.2.2 Vagrant如何適應(yīng)DevOps 7
1.2.3 將Vagrant用作日常DevOps工具 7
1.3 總結(jié) 8
第 2章 安裝VirtualBox和Vagrant 9
2.1 在Windows中安裝VirtualBox和Vagrant 10
2.1.1 準(zhǔn)備工作 10
2.1.2 在Windows 10中安裝VirtualBox 11
2.1.3 在Windows 10中安裝Vagrant 13
2.2 在Linux中安裝VirtualBox和Vagrant 14
2.2.1 準(zhǔn)備工作 15
2.2.2 在Ubuntu 16.04中安裝VirtualBox 15
2.2.3 在Ubuntu 16.04操作系統(tǒng)中安裝Vagrant 16
2.3 在macOS中安裝VirtualBox和Vagrant 17
2.3.1 準(zhǔn)備工作 17
2.3.2 在macOS 10.11.3中安裝VirtualBox 18
2.3.3 在macOS 10.13.3中安裝Vagrant 19
2.4 總結(jié) 20
第3章 命令行界面—Vagrant命令 21
3.1 Vagrant命令概述 21
3.2 深入了解Vagrant命令 23
3.2.1 關(guān)于命令格式的簡要說明 23
3.2.2 常規(guī)Vagrant命令和子命令 24
3.2.3 Vagrant的配置命令和子命令 25
3.2.4 日常使用的Vagrant命令和子命令 28
3.2.5 特定應(yīng)用程序的Vagrant命令和子命令 35
3.2.6 使用這些命令的典型的Vagrant工作流 39
3.3 故障排除 41
3.4 總結(jié) 42
第4章 探索Vagrant box—Vagrant Cloud 43
4.1 Vagrant box 44
4.1.1 Vagrant box文件 44
4.1.2 如何安裝Vagrant box 45
4.1.3 如何刪除Vagrant box 46
4.1.4 box版本管理 48
4.2 Vagrant Cloud 48
4.3 將Vagrant box上傳到Vagrant Cloud 54
4.4 Vagrant box的企業(yè)級(jí)解決方案 60
4.5 總結(jié) 60
第5章 使用Vagrantfile配置Vagrant 62
5.1 了解Vagrantfile 62
5.1.1 新建Vagrantfile 63
5.1.2 Vagrantfile語法 64
5.2 Vagrantfile選項(xiàng) 64
5.2.1 Vagrant機(jī)器配置(config.vm) 64
5.2.2 Vagrant SSH配置(config.ssh) 67
5.2.3 Vagrant配置(config.vagrant) 69
5.2.4 其他Vagrantfile配置 69
5.3 Vagrantfile故障排除 70
5.4 總結(jié) 72
第6章 Vagrant中的網(wǎng)絡(luò) 73
6.1 端口轉(zhuǎn)發(fā) 73
6.1.1 端口轉(zhuǎn)發(fā)配置 74
6.1.2 端口轉(zhuǎn)發(fā)知識(shí)點(diǎn) 77
6.2 專用網(wǎng)絡(luò) 78
6.2.1 DHCP 78
6.2.2 靜態(tài)IP 80
6.2.3 IPv6 81
6.3 公用網(wǎng)絡(luò) 81
6.3.1 DHCP 82
6.3.2 靜態(tài)IP 83
6.3.3 網(wǎng)橋 83
6.4 總結(jié) 83
第7章 多機(jī)器 85
7.1 多機(jī)器特性 85
7.1.1 多機(jī)器負(fù)載均衡 86
7.1.2 使用Vagrant多機(jī)器配置功能配置Web服務(wù)與數(shù)據(jù)庫 93
7.2 總結(jié) 99
第8章 探索Vagrant插件與文件同步 100
8.1 了解Vagrant插件 100
8.1.1 Vagrant插件概述 101
8.1.2 管理Vagrant插件 101
8.1.3 Vagrant中的plugin命令與子命令 103
8.1.4 Vagrant插件的搜索、安裝與使用 104
8.2 Vagrant文件同步 109
8.3 總結(jié) 112
第9章 Shell腳本—服務(wù)開通 114
9.1 Vagrant服務(wù)開通 114
9.2 了解配置管理 115
9.3 Vagrant服務(wù)開通的基本用法 116
9.4 使用文件選項(xiàng)進(jìn)行Vagrant服務(wù)開通 117
9.4.1 使用單個(gè)文件 117
9.4.2 使用整個(gè)文件夾 118
9.5 Vagrant Shell配置管理 119
9.5.1 內(nèi)聯(lián)腳本 121
9.5.2 外部腳本 121
9.5.3 腳本參數(shù) 122
9.6 總結(jié) 123
第 10章 Ansible—使用Ansible配置Vagrant box 124
10.1 了解Ansible 125
10.2 安裝Ansible 125
10.3 使用Ansible配置Vagrant 127
10.3.1 在主機(jī)上使用Ansible配置Vagrant 127
10.3.2 在客戶機(jī)上使用Ansible配置Vagrant 130
10.3.3 附加Ansible配置 132
10.4 Ansible Playbook 134
10.5 總結(jié) 135
第 11章 Chef—使用Chef配置Vagrant box 136
11.1 了解Chef 137
11.2 Chef Cookbook 137
11.2.1 Recipe 138
11.2.2 模板 138
11.2.3 屬性值 138
11.2.4 擴(kuò)展 139
11.2.5 文件分發(fā) 139
11.3 Chef Supermarket 139
11.4 使用Chef配置Vagrant 142
11.4.1 在macOS上安裝Chef 142
11.4.2 使用Chef Solo配置Vagrant機(jī)器 144
11.4.3 使用Chef Client配置Vagrant機(jī)器 147
11.5 總結(jié) 148
第 12章 Docker—Docker與Vagrant一起使用 149
12.1 了解Docker 150
12.2 使用Docker Hub查找和拉取鏡像 151
12.3 基本用法—啟動(dòng)容器 153
12.3.1 docker pull 154
12.3.2 docker run 154
12.3.3 docker stop 155
12.3.4 docker start 155
12.3.5 docker search 156
12.4 使用Docker配置Vagrant機(jī)器 156
12.5 Vagrant中的Docker特定配置 158
12.5.1 鏡像 159
12.5.2 build_image 159
12.5.3 pull_images 160
12.5.4 run 160
12.5.5 post_install_provisioner 163
12.6 總結(jié) 164
第 13章 Puppet—使用Puppet配置Vagrant box 165
13.1 了解Puppet 165
13.2 Puppet Apply和Puppet Agent 167
13.2.1 Puppet Apply 167
13.2.2 Puppet Agent 170
13.3 Puppet Manifest示例和語法 171
13.4 使用Puppet進(jìn)行服務(wù)開通 173
13.4.1 使用Puppet Apply進(jìn)行服務(wù)開通 173
13.4.2 使用Puppet Agent進(jìn)行服務(wù)開通 176
13.5 總結(jié) 181
第 14章 Salt—使用Salt配置Vagrant box 183
14.1 了解Salt 183
14.1.1 Salt服務(wù)器端 184
14.1.2 Salt客戶端 184
14.1.3 模塊 184
14.2 Salt State 186
14.3 使用Salt配置Vagrant 186
14.4 Vagrant中可以使用的Salt選項(xiàng) 190
14.4.1 Install選項(xiàng) 190
14.4.2 Minion選項(xiàng) 191
14.4.3 Master選項(xiàng) 192
14.4.4 執(zhí)行狀態(tài) 192
14.4.5 執(zhí)行器 192
14.4.6 輸出控制 192
14.5 Vagrant備忘清單 193
14.5.1 測試Vagrantfile 193
14.5.2 保存快照 193
14.5.3 狀態(tài) 193
14.5.4 box 194
14.5.5 硬件規(guī)格 194
14.5.6 代碼部署 194
14.5.7 多機(jī)器 195
14.5.8 通用基礎(chǔ) 195
14.6 總結(jié) 195