Vagrant là một công cụ quản lý cấu hình cho phép người dùng tạo ra các môi trường làm việc di động và có thể tái tạo. Vagrant nổi trội trong việc cung cấp các máy chủ nhất quán, dễ cấu hình có thể được sử dụng để duy trì môi trường phát triển nhất quán trên tất cả người dùng. Nó dễ dàng khởi chạy và gỡ bỏ, và có thể được cung cấp cho bất kỳ bộ phận nào của nhóm phát triển có thể cần một môi trường nhưng không có phương tiện để tự cấu hình. Thường được kết hợp với các nhà cung cấp như Puppet, Salt và Chef, nó cung cấp một giải pháp dễ dàng để duy trì quy trình làm việc nhất quán.
Vagrant có thể được ghép nối với Linode thông qua việc sử dụng plugin vagrant-linode để tạo và hủy các máy chủ Linode khi cần. Hướng dẫn này sẽ cung cấp hướng dẫn về cách cài đặt Vagrant, cấu hình plugin vagrant-linode và thiết lập máy chủ Apache cơ bản để thử nghiệm.
Điều kiện tiên quyết
- Cài đặt Vagrant trên máy tính cục bộ hoặc không gian làm việc khác.
- Tạo Khóa API. Khóa này sẽ được sử dụng để tạo Linode dựa trên hồ sơ Vagrant của bạn:
- Đăng nhập vào Linode Manager và chọn hồ sơ của tôi ở góc trên bên phải.
- Chọn tab Khóa API:
- Nhập nhãn cho Khóa API của bạn và đặt thời gian hết hạn. Sau đó nhấp vào Tạo Khóa API .
- Khóa API của bạn sẽ được xuất ra trong một hộp màu xanh lá cây. Khóa này sẽ chỉ được hiển thị một lần nên hãy chắc chắn ghi lại để sử dụng sau:
Cài đặt Plugin vagrant-linode
1.Từ không gian làm việc của bạn, hãy tạo một thư mục cho dự án và di chuyển vào thư mục đó:
mkdir ~/vagrant-linode
cd vagrant-linode
2.Cài đặt plugin:
vagrant plugin install vagrant-linode
Ghi chú: Nếu sử dụng máy Mac, có thể yêu cầu cài đặt công cụ phát triển. Chọn có, sau đó chạy lại lệnh.
3.Từ vagrant-linode
thư mục, tạo Vagrantfile:
touch Vagrantfile
Vagrantfile được sử dụng để mô tả, trong mã, loại máy mà Vagrant sẽ tạo ra. Nó định nghĩa mọi thứ từ hệ điều hành đến người dùng, đến bất kỳ ứng dụng nào cần được cài đặt ban đầu để tạo ra một môi trường làm việc nhất quán .
Cấu hình Vagrantfile
1.Mở Vagrantfile trong trình soạn thảo văn bản bạn chọn. Trong Ruby, hãy xác định phiên bản Vagrant bạn đang sử dụng. Định 2
nghĩa rằng đó là Vagrant 1.1.0 dẫn đến Vagrant 2.0. 1
là bất kỳ phiên bản nào của Vagrant thấp hơn:
Vagrant.configure('2') do |config|
end
Tất cả mã sẽ nằm giữa các dòng Vagrant.configure
và end
.
2.Khi tạo máy khách – máy chủ sẽ được tạo – Vagrant sẽ tạo tên người dùng, mật khẩu và khóa riêng để truy cập máy. Tên người dùng và mật khẩu mặc định là vagrant
. Xác định các tham số của riêng bạn cho username
, và đặt đường dẫn đến khóa riêng của bạn. Nếu bạn chưa tạo khóa riêng và khóa công khai, bạn có thể thực hiện bằng cách làm theo hướng dẫn Bảo mật máy chủ của bạn :
Vagrant.configure('2') do |config|
## SSH Configuration
config.ssh.username = 'user'
config.ssh.private_key_path = '~/.ssh/id_rsa'
end
Nếu bạn chọn làm như vậy, bạn cũng có thể xác định mật khẩu của riêng mình bằng config.ssh.password
phần cài đặt.
3.Định nghĩa nhà cung cấp Linode:
Vagrant.configure('2') do |config|
...
# Global Configuration
config.vm.provider :linode do |provider, override|
override.vm.box = 'linode'
override.vm.box_url = "https://github.com/displague/vagrant-linode/raw/master/box/linode.box"
provider.token = 'API-KEY'
end
end
Dòng 6 định nghĩa nhà cung cấp, và dòng 7 và 8 định nghĩa hộp . Hộp là các gói bao gồm các yêu cầu cơ bản để môi trường Vagrant hoạt động. Hộp được cung cấp là hộp linode
, được tạo như một phần của plugin. Thay thế API-KEY
bằng khóa được tạo ở trên .
4.Chọn cài đặt Linode của bạn:
Vagrant.configure('2') do |config|
...
# Global Configuration
config.vm.provider :linode do |provider, override|
...
#Linode Settings
provider.distribution = 'Ubuntu 14.04 LTS'
provider.datacenter = 'newark'
provider.plan = '2048'
provider.label = 'vagrant-ubuntu-lts'
end
end
Trong trường hợp này, một Linode Ubuntu 14.04 LTS 2GB đang được tạo tại trung tâm dữ liệu Newark. Đây provider.label
là tên mà Linode sẽ hiển thị trong Linode Manager.
Để xem thêm các tùy chọn liên quan đến plugin vagrant-linode, hãy xem tài liệu trên kho lưu trữ GitHub của plugin .
Thiết lập hộp Vagrant
Mặc dù máy chủ hiện có thể được tạo thành công, nhưng vẫn cần phải cấu hình nhiều khía cạnh của nó. Các tập lệnh Shell sẽ được sử dụng để hoàn tất các bước từ hướng dẫn Thiết lập và Bảo mật Phiên bản Máy tính , cũng như để cài đặt và cấu hình Apache. Các tệp cũng sẽ được đồng bộ hóa giữa máy trạm và Linode.
Cấu hình máy chủ
1.Tạo một tập lệnh shell được gọi setup.sh
để cấu hình tên máy chủ của Linode, đặt múi giờ thích hợp và cập nhật máy chủ. Thay thế vagranttest
bằng tên máy chủ bạn đã chọn và EST
múi giờ của bạn.
#!/bin/bash
echo "vagranttest" > /etc/hostname
hostname -F /etc/hostname
ip=$(ip addr show eth0 | grep -Po 'inet \K[\d.]+')
echo "$ip $ip hostname" >> /etc/hosts
ln -sf /usr/share/zoneinfo/EST /etc/localtime
apt-get update && apt-get upgrade -y
- Dòng 2 và 3 xác định tên máy chủ.
- Dòng 4 thiết lập biến
ip
thành địa chỉ IP của Linode – vì chúng ta sẽ không biết địa chỉ IP cho đến khi Vagrant khởi chạy Linode. - Dòng 5 chèn địa chỉ IP vào
/etc/hosts
tệp để xác định tên miền đủ điều kiện. - Dòng 6 thiết lập múi giờ và dòng cuối cùng cập nhật máy chủ và các gói máy chủ.
2.Trong Vagrantfile, hãy gọi đến tập lệnh shell mà bạn vừa tạo bằng cách thêm config.vm.provision
phương thức:
Vagrant.configure('2') do |config|
...
# Shell Scripts
config.vm.provision :shell, path: "setup.sh"
end
Cài đặt Apache và Sync Files
1.Tạo một tập lệnh cài đặt cho Apache có tên là apache.sh
, và thêm nội dung sau:
#!/bin/bash
apt-get install apache2 -y
mv /etc/apache2/ports.conf /etc/apache2/ports.conf.backup
mv /etc/apache2/ports1.conf /etc/apache2/ports.conf
a2dissite 000-default.conf
a2ensite vhost.conf
service apache2 reload
- Dòng 2 cài đặt Apache.
- Dòng 3 và 4 tạo bản sao lưu của
ports.conf
tệp và thay thế bằng tệp được tạo bên dưới. - Dòng 5 và 6 vô hiệu hóa tệp máy chủ mặc định và kích hoạt tệp chúng ta sẽ tạo bên dưới. Sau đó, Apache được tải lại để thực hiện các thay đổi cấu hình.
2.Thêm phương thức cung cấp tập lệnh shell vào Vagrantfile của bạn, bên dưới dòng tham chiếu setup.sh
:
Vagrant.configure('2') do |config|
...
# Shell Scripts
config.vm.provision :shell, path: "setup.sh"
config.vm.provision :shell, path: "apache.sh"
end
3.Tạo một thư mục mới cho các tập tin cấu hình Apache:
mkdir apache2
4.Vì Vagrant thường được sử dụng cho môi trường phát triển, chúng tôi muốn lưu trữ Apache trên một cổng khác ngoài 80. Tạo ports1.conf
, như được tham chiếu trong tập lệnh shell ở trên. Cổng sẽ được đặt thành 6789 :
Listen 6789
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
5.Tạo một thư mục mới có apache2
tên là sites-available
. Thêm tệp VirtualHosts, vhost.conf
, vào thư mục mới này:
mkdir sites-available
<VirtualHost *:6789>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
6.Quay lại Vagrantfile và sử dụng config.vm.synced_folder
phương pháp để đồng bộ các thư mục cục bộ với các thư mục trên máy chủ:
Vagrant.configure('2') do |config|
...
# Synced Folders
config.vm.synced_folder '.', '/vagrant', disabled: true
config.vm.synced_folder './apache2', '/etc/apache2', disabled: false
config.vm.synced_folder './webfiles', '/var/www/html'
end
- Dòng 5 vô hiệu hóa đồng bộ hóa cho các thư mục gốc.
- Dòng 6 định nghĩa
apache2
thư mục được lưu trữ cục bộ ('./apache2'
) và liên kết nó với/etc/apache2
thư mục trên Linode.disabled: false
đảm bảo rằng nó sẽ đồng bộ. - Dòng 7 thực hiện tương tự với thư mục chưa được tạo
./webfiles
có thể được sử dụng để thêm bất kỳ tệp trang web nào trước khi khởi động phiên bản.
7.Tạo webfiles
thư mục trong vagrant-linode
thư mục của bạn:
mkdir ~/vagrant-linode/webfiles
Thêm vào thư mục này bất kỳ tệp nào bạn muốn Linode phục vụ qua HTTP.
Khởi động một phiên bản
Sau khi cấu hình Vagrantfile và tạo các tập lệnh và tệp, giờ là lúc tạo máy khách và kiểm tra xem nó có chạy bình thường không.
1.Từ máy trạm của bạn, hãy khởi động phiên bản:
vagrant up
Nó sẽ chạy qua quá trình cài đặt, đồng bộ hóa các thư mục và chạy các tập lệnh shell.
2.Đăng nhập vào Linode mới tạo:
vagrant ssh
3.Để đảm bảo Apache đang chạy đúng cách, hãy kiểm tra trạng thái:
service apache2 status
Nó sẽ cho ra kết quả:
* apache2 is running
4.Để biết môi trường có thể truy cập trực tuyến hay không, hãy kiểm tra địa chỉ IP:
hostname -i
Sau đó, hãy vào trình duyệt web bạn chọn và điều hướng đến địa chỉ IP của bạn với :6789
phần thêm vào cuối. Bạn sẽ thấy Trang mặc định của Apache2 Ubuntu.
Ghi chú:
Nếu bạn muốn tắt hoặc xóa Linode khỏi không gian làm việc của mình, bạn có thể thực hiện thông qua một trong các lệnh sau:
vagrant halt
sẽ tắt nguồn Linode thông qua cơ chế tắt máy. Sau đó, bạn có thể chạyvagrant up
lại để bật nguồn Linode.vagrant destroy
sẽ xóa hoàn toàn Linode khỏi tài khoản của bạn, xóa mọi thứ được tạo trong quá trình Vagrant up hoặc được thêm vào máy chủ sau này.
Thông tin thêm
Bạn có thể muốn tham khảo các nguồn sau để biết thêm thông tin về chủ đề này. Mặc dù chúng tôi cung cấp với hy vọng rằng chúng sẽ hữu ích, nhưng xin lưu ý rằng chúng tôi không thể đảm bảo tính chính xác hoặc tính kịp thời của các tài liệu được lưu trữ bên ngoài.
Nguồn: https://www.linode.com/docs/guides/vagrant-linode-environments/