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

  1. Cài đặt Vagrant trên máy tính cục bộ hoặc không gian làm việc khác.
  2. 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:Giao diện lập trình ứng dụng Linode
    • 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:Khóa API Linode đã được tạo

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-linodethư 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 2nghĩa rằng đó là Vagrant 1.1.0 dẫn đến Vagrant 2.0. 1là 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.configurevà 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.passwordphầ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-KEYbằ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.labellà 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ế vagranttestbằng tên máy chủ bạn đã chọn và ESTmú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 ipthà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/hoststệ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.provisionphươ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.conftệ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ó apache2tê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_folderphươ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 apache2thư mục được lưu trữ cục bộ ( './apache2') và liên kết nó với /etc/apache2thư 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 ./webfilescó 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 webfilesthư mục trong vagrant-linodethư 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 :6789phầ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 haltsẽ tắt nguồn Linode thông qua cơ chế tắt máy. Sau đó, bạn có thể chạy vagrant uplại để bật nguồn Linode.
  • vagrant destroysẽ 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/