博客 / 詳情

返回

如何快捷啓動一個 ubuntu 虛擬機實例

虛擬機是一個比較有意思的事物,有了虛擬機,我們可以輕易在自己電腦上體驗不同的操作系統. Linux 系統是服務器普遍使用的操作系統,但是很少會是我們個人電腦上的操作系統,那麼體驗和使用 Linux 就可以使用虛擬機。Virtualbox 是一款流行的開源免費的虛擬機軟件,Prometheus 是一款流行的開源監控軟件,MySQL 是廣泛使用的開源數據庫軟件,如何便捷簡單的體驗和使用它們,是這篇文章和項目的目的。

如下,只需要 4 個步驟,你就將安裝和啓動一個 ubuntu 的 virtualbox 虛擬機,裏面運行了mysql 實例和 prometheus監控系統。

開始

  1. 手動下載安裝 Virtualbox 虛擬機軟件 https://www.virtualbox.org/wi...
  2. 手動下載安裝 Vagrant 虛擬機管理軟件 https://www.vagrantup.com/dow...
  3. 使用 git clone 倉庫地址 https://gitee.com/thunderstorm96/vagrant-virtualbox-prometheus.git
  4. 進入 vagrant-virtualbox-prometheus 項目目錄, 執行下面命令,啓動虛擬機環境
vagrant up
# 這條命令首先檢查本地是否有 hashicorp/bionic64 的虛擬機鏡像 box,如果沒有, 則從 vagrantcloud.com 下載該鏡像 box
# 下載完成後,將啓動該虛擬機

恭喜你,通過上述簡單 4 個步驟,你已經完成了啓動一個安裝有 prometheus 和 mysql 實例的 virtualbox 虛擬機。現在
你可以體驗很多事情。

使用

1. 體驗 prometheus 監控系統。

打開 localhost:3001 地址,這是 grafana 前端地址(grafana 用來配合展示 prometheus 監控內容的前端組件) ,默認賬號密碼 admin/admin.

登錄後,找到項目默認安裝的 dashboard,就可以查看 ubuntu 虛擬機的監控狀態。

2. 登錄到 ubuntu 虛擬機,探索 linux

執行 vagrant ssh 連接到虛擬機,執行後,你就進入到了 ubuntu 系統的 shell,可以執行各種 linux 命令, 探索 linux 系統。

3. 連接到 mysql 數據庫

虛擬機裏安裝了一個 mysql 實例,端口 3308,默認已經創建了一個數據庫用户 root2/123456, 可以使用你的數據庫連接軟件連接到數據庫。當然也可以在使用 vagrant ssh 登錄到虛擬機 shell 之後,直接執行 sudo mysql 連接到 mysql shell。

4. 銷燬虛擬機

在體驗完後,如果後續不想使用了,自然地,可以銷燬、停機、掛起虛擬機,

  • 執行 vagrant destroy,銷燬虛擬機
  • 執行 vagrant halt,關閉虛擬機
  • 執行 vagrant suspend 掛起虛擬機

    更多 vagrant cli 命令參考 https://www.vagrantup.com/doc...

補充説明

運行 vagrant up 命令後, vagrant 會根據虛擬機描述文件 Vagrantfile 啓動一個 virtualbox 虛擬機, 並執行 deploy.sh 腳本. deploy.sh
腳本將下載和安裝 prometheus 和 grafana.

promethues 常用來監控主機、應用、中間件, 通過 agent 來收集主機、應用等的指標信息,彙總保存到時序
數據庫,通過 grafana 做前端展示,提供了應用系統的觀測性。

項目結構

Vagrantfile # 要啓動的虛擬機配置文件
deploy.sh  # 虛擬機啓動後運行的腳本:1. 下載安裝 prometheus。2. 下載安裝 grafana。3. 下載安裝 mysql
config/mysqld.cnf  mysqld 配置文件
config/prometheus.yml  prometheus 配置文件
sql/init.sql 創建數據庫用户的sql 腳本

參考

  • https://www.vagrantup.com/doc...
  • https://dev.mysql.com/doc/ref...

歡迎關注我的個人公眾號-工程師雷雨 engioneer_leiyu96, 我會定期分享工作中用到的一些提高開發效率的自動化工具和開發體驗.

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.