【雲端計算導論】使用Vagrant配置並建立屬於自己的CentOS box
阿新 • • 發佈:2018-12-13
在使用Vagrant建立虛擬機器時,我們要使用CentOS的box來建立虛擬機器,而官方提供的box是原版的box,建立完成後還需要自己手動配置環境。我們可以建立一個已經裝載好自己需要的常用軟體依賴的box,然後將這個box重複使用。
安裝centos7原版虛擬機器方法請參考實驗一第四條:安裝Vagrant,並使用Vagrant安裝CentOS
安裝完成後使用XShell以vagrant使用者身份(賬號和密碼均為vagrant)登入
一、使用Pyenv,在Vagrant CentOS中安裝Python3.6.6
(一)安裝Pyenv
sudo yum -y update
sudo reboot
- 安裝git:
sudo yum -y install git
- 安裝依賴包:
sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
- 安裝pyenv包:
mkdir ~/.pyenv
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
- 定義環境變數:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
- 新增pyenv init到shell中:
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
- 重啟shell:
exec $SHELL -l
- 檢視pyenv支援的全部Python版本,同時也用來測試是否安裝成功:
pyenv install --list
(二)使用Pyenv安裝Python3.6.6
- 安裝pip:
sudo yum -y install epel-release
sudo yum -y install python-pip
sudo yum clean all
- 安裝好庫檔案:
sudo yum install zlib-devel bzip2-devel sqlite sqlite-devel openssl-devel
- 安裝gcc:
sudo yum install -y gcc
- 安裝Python3.6.6:
pyenv install 3.6.6
- 檢視安裝結果(處於啟用狀態的版本前以 * 標示):
pyenv versions
- 更新資料庫
pyenv rehash
- 設定全域性python版本(global)
pyenv global 3.6.6
- 檢視當前Python版本
python -V
至此,我們就已經制作了一個帶有Pyenv和Python3.6.6環境的CentOS虛擬機器了。
二、打包BOX
先關閉剛剛建立的虛擬機器
然後以管理員身份開啟cmd,進入剛剛建立的虛擬機器的Vagrantfile所在的資料夾
執行以下語句:
vagrant package
完成後便會在該目錄下生成一個“package.box”,這個box即為打包好當前環境的box
現在將該box載入到vagrant的box list中:
vagrant box add --name 'my-virtualbox' package.box
看是否新增成功:
vagrant box list
新建一個資料夾,用來存放init該box後產生的Vagrantfile檔案:
cd ..
mkdir myCentOS
cd myCentOS
Init該box:
vagrant init my-virtualbox
完成後便可在myCentOS資料夾中就可以看到自己建立的box的Vagrantfile檔案。