Khi sử dụng Vagrant, bạn thường dùng một Box có sẵn làm cơ sở cho quá trình cài đặt. Tuy nhiên, trong một số trường hợp, bạn sẽ muốn tự tạo Box của riêng mình. Điều này có thể là do Box đó chưa tồn tại, bạn có thiết lập chung mà bạn không muốn lặp lại cho mỗi lần xây dựng, hoặc đơn giản là bạn không muốn sử dụng Box của người khác. Trong bài viết này, chúng tôi sẽ hướng dẫn cách tạo một Vagrant base box mới sử dụng hệ điều hành Fedora và VirtualBox. Cách tiếp cận tương tự cũng áp dụng cho các bản phân phối Linux khác.
- Tạo máy ảo (VM)
- Cấu hình Vagrant bắt buộc
- Đóng gói hộp
Các bài viết liên quan.
- Vẩngnt: Hướng dẫn dành cho người mới bắt đầu
Tạo máy ảo (VM)
Chúng ta bắt đầu bằng cách tạo thủ công một máy ảo (VM) trong VirtualBox theo cách thông thường. Trong ví dụ này, chúng ta đang xây dựng một máy ảo cho Fedora 30 beta, vì tại thời điểm viết bài này chưa có máy ảo nào dành cho phiên bản beta. Máy ảo được tạo với các thông tin chi tiết sau.
- Tên: fedora-30
- Hệ điều hành: Fedora (64-bit)
- Bộ nhớ cơ bản: 1024MB
- Mạng: Default. Adapter 1 Intel PROD/1000 MT Desktop (NAT)
- Bộ nhớ: 60G VMDK, bộ nhớ được phân bổ động.
- Thứ tự khởi động: Ổ cứng khởi động trước.
Việc định nghĩa máy ảo được cố ý đơn giản, vì chúng ta sẽ tùy chỉnh nó cho từng cài đặt bằng cách sử dụng Vagrantfile cho cài đặt cụ thể đó. Điều này bao gồm việc thay đổi tên máy ảo, CPU, bộ nhớ, cấu hình mạng và bất kỳ dung lượng lưu trữ bổ sung nào. Điều duy nhất chúng ta thực sự quan tâm là ổ đĩa ảo phải đủ lớn để sử dụng cho các công việc cơ bản, và phải có bộ điều hợp mạng NAT, điều bắt buộc đối với một Vagrant box.
Trong ví dụ này, chúng tôi đã cài đặt hệ điều hành bằng phương tiện "Fedora-Server-dvd-x86_64-30_Beta-1.8.iso". Chúng tôi đã thực hiện cài đặt cơ bản, cố gắng không thay đổi các thiết lập mặc định và chỉ thêm tối thiểu phần mềm bổ sung. Sau khi hoàn tất, chúng tôi đã đảm bảo rằng phương tiện cài đặt không còn được gắn vào máy ảo nữa.
Đến thời điểm này, chúng ta đã có một máy ảo hoạt động được, với rất ít phần mềm được cài đặt trên đó.
Hãy nhớ đừng lưu trữ bất cứ thông tin riêng tư nào trong hộp thư, vì bất kỳ ai khác sử dụng hộp thư đó đều có thể truy cập được!
Cấu hình Vagrant bắt buộc
Sau khi thiết lập máy ảo, chúng ta cần thực hiện cấu hình bắt buộc dành riêng cho Vagrant. Một base box của Vagrant phải tuân thủ một vài tiêu chuẩn cụ thể về cấu hình. Tất cả cấu hình này được thực hiện với quyền người dùng "root" bên trong máy ảo.
Mật khẩu người dùng "root" phải được đặt là "vagrant" và cần có một người dùng tên là "vagrant" với mật khẩu là "vagrant". Bạn có thể thiết lập điều này trong quá trình cài đặt, nhưng nếu không thì đây là những gì bạn cần làm.
# Đặt mật khẩu root cho vagrant. echo -e "vagrant\nvagrant" | passwd # Tên người dùng Vagrant với mật khẩu là vagrant. useradd vagrant echo -e "vagrant\nvagrant" | passwd vagrant
Chúng ta cần cấp quyền sudo không cần mật khẩu cho người dùng "vagrant" bằng cách chỉnh sửa tệp "/etc/sudoers".
# Cấp quyền sudo không cần mật khẩu cho người dùng vagrant. cat >> /etc/sudoers <<EOF vagrant ALL=(ALL) NOPASSWD: ALL EOF
Tất cả các Vagrant box đều sử dụng một khóa công khai không an toàn đã được biết đến, vì vậy Vagrant có thể thiết lập kết nối ban đầu khi cấp phát một máy ảo mới. Nghe có vẻ đáng sợ, nhưng khi bạn xem kết quả khi tạo một máy ảo mới từ một box, bạn sẽ thấy điều gì đó tương tự như thế này.
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...Chúng ta có thể thấy khóa không an toàn đã được thay thế bằng một cặp khóa mới được tạo ra, và cặp khóa không an toàn đã bị xóa bỏ.
Khóa công khai không an toàn có sẵn trên GitHub. Các lệnh bên dưới sẽ tải xuống khóa này để tạo tệp "authorized_keys" cho người dùng "vagrant".
# Thêm khóa công khai không an toàn. rm -Rf /home/vagrant/.ssh mkdir /home/vagrant/.ssh wget -O /home/vagrant/.ssh/authorized_keys https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant.pub chown -R vagrant:vagrant /home/vagrant/.ssh chmod 0700 /home/vagrant/.ssh chmod 0600 /home/vagrant/.ssh/authorized_keys
Tiếp theo, chúng ta cần cài đặt các tiện ích bổ sung cho máy ảo VirtualBox. Trước khi làm điều đó, chúng ta cần đảm bảo một số gói cần thiết đã được cài đặt. Chúng ta cũng sẽ tận dụng cơ hội này để cập nhật tất cả các gói hiện có và khởi động lại máy ảo.
# Fedora
dnf install -y gcc kernel-devel-$(uname -r) kernel-headers-$(uname -r) dkms make bzip2 perl libX11 libXt libXext libXmu
dnf update -y
reboot
# OL7/OL8 with Red Hat Compatibility Kernel (RHCK). (Switch "yum" to "dnf" on OL8)
yum install -y gcc kernel-devel-$(uname -r) kernel-headers-$(uname -r) make bzip2 perl wget elfutils-libelf-devel libX11 libXt libXext libXmu
yum update -y
reboot
# OL7
yum install -y oracle-epel-release-el7
yum install -y gcc kernel-uek-devel-$(uname -r) make bzip2 perl wget elfutils-libelf-devel libX11 libXt libXext libXmu
yum update -y
reboot
# OL8
dnf install -y oracle-epel-release-el8
dnf install -y gcc kernel-uek-devel-$(uname -r) make bzip2 perl wget elfutils-libelf-devel libX11 libXt libXext libXmu
dnf update -y
reboot
# OL9
dnf install -y oracle-epel-release-el8
dnf install -y gcc kernel-uek-devel-$(uname -r) make bzip2 perl wget elfutils-libelf-devel libX11 libXt libXext libXmu
dnf update -y
reboot
# OL10
dnf install -y oracle-epel-release-el8
dnf install -y gcc kernel-uek-devel-$(uname -r) make bzip2 perl wget elfutils-libelf-devel libX11 libXt libXext libXmu
dnf update -y
rebootSau khi máy ảo khởi động lại, chúng ta có thể cài đặt các tiện ích bổ sung cho máy ảo.
Chúng ta gắn ảnh đĩa Guest Additions bằng tùy chọn menu "Thiết bị > Chèn ảnh đĩa Guest Additions..." trên cửa sổ máy ảo. Sau đó, chúng ta cần gắn đĩa CD và cài đặt Guest Additions bằng các lệnh sau. Lưu ý rằng chúng ta sẽ đẩy đĩa Guest Additions ra sau khi hoàn tất.
mkdir /media/VirtualBoxGuestAdditions
mount -r /dev/cdrom /media/VirtualBoxGuestAdditions
#export KERN_DIR=/usr/src/kernels/`uname -r`/build
cd /media/VirtualBoxGuestAdditions
./VBoxLinuxAdditions.run
cd /
ejectChúng tôi chưa cài đặt X hoặc bất kỳ trình quản lý cửa sổ nào, vì vậy các mô-đun đồ họa sẽ không biên dịch được. Điều này không sao cả.
Quá trình cấu hình Vagrant đã hoàn tất, vì vậy chúng ta cần tắt máy ảo.
shutdown -h nowĐóng gói hộp
Sau khi máy ảo được tạo và cấu hình Vagrant hoàn tất, chúng ta có thể biến máy ảo thành một Vagrant box bằng lệnh "vagrant package". Chúng ta chuyển đến thư mục mà chúng ta muốn tạo gói, sau đó thực hiện lệnh "vagrant package". Cờ "--base" được sử dụng để chỉ định máy ảo nào sẽ được đóng gói thành box, và cờ "--output" cho phép chúng ta đặt tên cho gói kết quả. Tùy thuộc vào kích thước ổ đĩa của máy ảo, quá trình này có thể mất một thời gian để hoàn thành.
cd \temp vagrant package --base fedora-30 --output fedora-30.box
Sau khi có gói hàng, chúng ta có thể đưa nó vào danh sách các hộp có sẵn để sử dụng. Các lệnh sau đây sẽ thêm hộp mới và liệt kê các hộp hiện có sẵn.
vagrant box add C:\temp\fedora-30.box --name oraclebase/fedora-30 vagrant box list bento/oracle-7.6 (virtualbox, 201812.27.0) oraclebase/fedora-30 (virtualbox, 0)
Giờ bạn đã có box, bạn có thể sử dụng nó như bất kỳ box nào khác bằng cách tham chiếu nó trong Vagrantfile cho bản dựng mới.
Để biết thêm thông tin chi tiết, vui lòng xem:
Hi vọng điều này sẽ hữu ích.
TƯ VẤN: Click Here hoặc Hotline/Zalo 090.29.12.888
=============================
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
cơ sở dữ liệu, cơ sở dữ liệu quốc gia, database, AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c/21c/23c/23ai, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, docker, k8s, micro service, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty