# Vagrant

### 主講人:黃夙賢
---
## Vagrant
- 2010年由HashiCorp公司創立,使用命令列腳本方式構建虛擬機器
- 採用Ruby編寫
- 主要使用VirtualBox提供虛擬化系統
---
## 安裝vagrant
- vagrant[下載連結](https://developer.hashicorp.com/vagrant/downloads)

---

---

---

---

---

---
- 安裝完成後,重新開機

---
## 利用Vagrant建立虛擬機
- 開啟powershell
 
---
## 安裝環境初始設定
- cd ~ (進入家目錄)
- mkdir docker_test (建立docker_test虛擬機目錄)
- cd docker_test

---
## 安裝相關外掛
- vagrant plugin install vagrant-vbguest(安裝外掛)
- vagrant plugin list (檢視外掛)
- vagrant plugin update (更新外掛)


---
- vagrant init ubuntu/focal64 (初始化focal64版本之ubuntu)
- ls (LS,查看初始檔Vagrantfile是否建立)

---
## 更新虛擬機映像檔
- vagrant box update

---
## Vagrant file
- Vagrantfile是建立Linux系統的腳本(Script)設定檔案,由ruby語法所撰寫
- \#開頭代表註釋
- notepad Vagrantfile (編輯Vagrantfile)

---
## 編輯port 對應
- 把虛擬機的80port對到本機的8080
- 存檔後離開


---
## 啟動虛擬機
- vagrant up

---
## 等待安裝完畢

---
## 開啟防火牆

---
## 檢查新增之虛擬機

---
## 登入ubuntu
- vagrant ssh

---
## 更新系統與套件
- sudo apt update

---
## 升級系統與相關套件
- sudo apt upgrade -y

---
## 同時建立兩台linux
- cd ~
- mkdir two_servers
- cd two_servers
- vagarnt init ubuntu/focal64
- notepad Vagrantfile
---
- (Vagrantfile內容)
```
Vagrant.configure("2") do |config|
config.vm.define "master" do |master|
master.vm.box = "ubuntu/focal64"
master.vm.network "private_network", ip: "192.168.2.2"
master.vm.provider "virtualbox" do |vb|
vb.memory = "2048"
end
end
config.vm.define "node1" do |node1|
node1.vm.box = "ubuntu/focal64"
node1.vm.network "private_network", ip: "192.168.2.3"
node1.vm.provider "virtualbox" do |vb|
vb.memory = "2048"
end
end
end
```
- vagrant up
- vagrant ssh master (或者node1)
---
{"metaMigratedAt":"2023-06-17T18:24:05.912Z","metaMigratedFrom":"YAML","title":"Vagrant","breaks":true,"contributors":"[{\"id\":\"ef0225b9-6c2a-4012-82c9-fa1031d2c4db\",\"add\":2994,\"del\":266}]"}