Bài viết Câu hỏi About RongvangIT
profile Pic
0
0

Đăng ngày:

 

Sửa ngày:

47 Lượt xem

[Python] Tạo Máy Chủ Môi Trường Phát Triển bằng Vagrant

VagrantPython

1. Giới thiệu

Trong những thời gian gần đây, các từ như tự động hóa hoặc Infrastructure as Code đã trở thành xu hướng trong cộng đồng Kỹ sư Cơ sở hạ tầng. Do đó, tôi quyết định học Python, một ngôn ngữ lập trình phổ biến để thực hiện những mục tiêu này.

Đầu tiên, để chạy chương trình Python, tôi sẽ tạo một máy chủ môi trường phát triển. Tôi sẽ sử dụng công cụ tự động hóa máy ảo Vagrant.

2. Điều kiện tiên quyết

Trong bài viết này, tôi sẽ thực hiện trên macOS Mojave (10.14.x).

3. Cài đặt VirtualBox

Truy cập trang web chính thức của VirtualBox và tải gói cài đặt phù hợp với hệ điều hành của bạn từ mục “VirtualBox 6.x.x platform packages”. Sau đó, thực hiện các bước cài đặt theo hướng dẫn trong tài liệu chính thức.

4. Cài đặt Vagrant

Truy cập trang web chính thức của Vagrant và tải bản cài đặt cho macOS 64-bit. Sau khi tải xong, chạy tệp cài đặt và làm theo hướng dẫn trên màn hình. Khi quá trình cài đặt hoàn tất, mở Terminal trên macOS và chạy lệnh sau để kiểm tra việc cài đặt:

$ vagrant --version
Vagrant 2.2.4

5. Tạo Máy Chủ Ảo

Tại Vagrant Cloud, có các hình ảnh máy chủ ảo được gọi là “Box” có thể sử dụng với Vagrant. Trong ví dụ này, chúng tôi sẽ sử dụng Box “centos/7”.

5.1 Tạo thư mục làm việc

Tạo thư mục làm việc cho Vagrant và chuyển đến thư mục đó:

$ mkdir -p ~/vagrant/centos7
$ cd ~/vagrant/centos7
$ pwd
/Users/user01/vagrant/centos7

5.2 Tạo Vagrantfile

Tạo Vagrantfile là bản thiết kế cho máy chủ ảo. Box được chọn thông qua vagrant init và “centos/7” là tên Box.

$ vagrant init centos/7

A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

$ ls
Vagrantfile

5.3 Chỉnh sửa Vagrantfile

Chúng ta sẽ chỉnh sửa Vagrantfile đã tạo. Trong trường hợp này, các thay đổi sau đã được thực hiện:

  1. Tạo một NIC chỉ có thể truy cập từ máy chủ với địa chỉ IP là 192.168.33.10.
  2. Thiết lập bộ nhớ của máy ảo là 1024MB.
  3. Tự động thực hiện yum update trên hệ điều hành sau khi máy ảo được tạo.

Lưu ý rằng, bất kể việc có thiết lập NIC chỉ có thể truy cập từ máy chủ hay không, NIC loại NAT để kết nối ra ngoại vi được cài đặt tự động theo mặc định.

Sử dụng trình soạn thảo vim để mở và chỉnh sửa Vagrantfile:

$ vim Vagrantfile
# config.vm.network "private_network", ip: "192.168.33.10"
↓
config.vm.network "private_network", ip: "192.168.33.10"

# config.vm.provider "virtualbox" do |vb|
#   # Display the VirtualBox GUI when booting the machine
#   vb.gui = true
#
#   # Customize the amount of memory on the VM:
#   vb.memory = "1024"
# end
↓
config.vm.provider "virtualbox" do |vb|
  vb.memory = "1024"
end

# config.vm.provision "shell", inline: <<-SHELL
#   apt-get update
#   apt-get install -y apache2
# SHELL
↓
config.vm.provision "shell", inline: <<-SHELL
  yum -y update
SHELL

Sau khi chỉnh sửa, Vagrantfile sẽ trông giống như sau (các dòng chú thích và dòng trắng đã được loại bỏ):

$ egrep -v '(^.*#|^\s*$)' Vagrantfile
Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.network "private_network", ip: "192.168.33.10"
config.vm.provider "virtualbox" do |vb|
  vb.memory = "1024"
end
config.vm.provision "shell", inline: <<-SHELL
  yum -y update
SHELL
end

5.4 Khởi động Máy Chủ Ảo

Sử dụng lệnh vagrant up để tạo và khởi động máy chủ ảo. Quá trình này có thể mất một thời gian tương đối nếu đây là lần đầu tiên bạn sử dụng Box và nó phải được tải về từ internet.

$ vagrant up

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'centos/7' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Loading metadata for box 'centos/7'
default: URL: https://vagrantcloud.com/centos/7
==> default: Adding box 'centos/7' (v1902.01) for provider: virtualbox
default: Downloading: https://vagrantcloud.com/centos/boxes/7/versions/1902.01/providers/virtualbox.box
default: Download redirected to host: cloud.centos.org
==> default: Successfully added box 'centos/7' (v1902.01) for 'virtualbox'!
==> default: Importing base box 'centos/7'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'centos/7' version '1902.01' is up to date...
==> default: Setting the name of the VM: centos7_default_1560435174790_18483
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
default:
default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default:
default: Inserting generated public key within guest...
default: Removing insecure key from the guest if it's present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
default: No guest additions were detected on the base box for this VM! Guest
default: additions are required for forwarded ports, shared folders, host only
default: networking, and more. If SSH fails on this machine, please install
default: the guest additions and repackage the box to continue.
default:
default: This is not an error message; everything may continue to work properly,
default: in which case you may ignore this message.
==> default: Configuring and enabling network interfaces...
==> default: Rsyncing folder: /Users/hoshino/vagrant/centos7/ => /vagrant
==> default: Running provisioner: shell...
default: Running: inline script
(Lược)

6. Đăng nhập vào Máy Chủ Ảo

Sử dụng lệnh vagrant ssh để đăng nhập vào máy chủ ảo. Để đăng xuất từ máy chủ ảo, chỉ cần chạy lệnh exit.

$ vagrant ssh
$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
$ exit

6.1 Dừng Máy Chủ Ảo

Sử dụng vagrant halt để dừng máy chủ ảo. vagrant status có thể được sử dụng để kiểm tra trạng thái của máy chủ ảo.

$ vagrant status
Current machine states:

default                   running (virtualbox)

The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.


$ vagrant halt
==&gt; default: Attempting graceful shutdown of VM...
$ vagrant status
Current machine states:

default                   poweroff (virtualbox)

The VM is powered off. To restart the VM, simply run `vagrant up`

6.2 Xóa Máy Chủ Ảo

Nếu bạn không cần thiết bị ảo nữa, bạn có thể sử d

ụng vagrant destroy để xóa nó.

$ vagrant destroy
default: Are you sure you want to destroy the 'default' VM? [y/N] y
==&gt; default: Destroying VM and associated drives...


$ vagrant status
Current machine states:

default                   not created (virtualbox)

The environment has not yet been created. Run `vagrant up` to
create the environment. If a machine is not created, only the
default provider will be shown. So if a provider is not listed,
then the machine is not created for that environment.

7. Tổng kết

Chúng ta đã thực hiện một loạt các hoạt động với Vagrant.

  • Vagrant sử dụng Box, một hình ảnh máy chủ ảo được chia sẻ trên Internet, để tạo máy chủ ảo.
  • Chúng ta sử dụng Vagrantfile để tạo bản thiết kế cho máy chủ ảo.
  • Sử dụng các lệnh Vagrant để thao tác với máy chủ ảo.
dev_pro_it
Đang làm IT tại Japan

Bình luận

Bài viết chưa có bình luận. Hãy trở thành người bình luận đầu tiên!
Sign up for free and join this conversation.
Sign Up
If you already have a RongvangIT account Login
Danh sách thư mục
Bắt đầu ngay với RồngVàngIT - nền tảng chia sẻ kiến thức lập trình tuyệt vời cho kỹ sư Việt Nam!

Hãy đăng nhập để sử dụng hàng loạt các chức năng tuyệt vời của RồngVàngIT !

  1. 1. Bạn sẽ nhận được các bài viết phù hợp bằng chức năng theo dõi tag và người dùng.
  2. 2. Bạn có thể đọc lại các thông tin hữu ích bằng chức năng lưu trữ nội dung.
  3. 3. Chia sẻ kiến thức, đặt câu hỏi và ghi lại quá trình trưởng thành của mình cùng RồngVàngIT !
Tạo tài khoản Đăng nhập
profile Pic