/ / Cách tự động tạo máy ảo trong Azure bằng cloud-init

Cách tự động tạo máy ảo trong Azure bằng cloud-init

Nếu bạn đã từng thiết lập một máy ảo, bạn sẽ biết nó hoạt động như thế nào. Bạn nhấp vào đây và đó, nhấp theo cách của bạn thêm một chút nữa và cuối cùng, bạn đã thiết lập được một hệ thống. Nhưng sau đó, bạn vẫn phải cài đặt phần mềm và định cấu hình VM theo sở thích của mình.


Bây giờ hãy tưởng tượng rằng bạn muốn thiết lập hàng trăm máy ảo. Nhấp theo cách của bạn thông qua cài đặt không hiệu quả. Thay vào đó, bạn cần tự động hóa quy trình càng nhiều càng tốt và đó là lúc cloud-init ra đời.

Hãy xem cách bạn có thể tự động cài đặt hệ điều hành và cấu hình máy ảo bằng cách sử dụng cloud-init trong Microsoft Azure.


Tại sao nên sử dụng cloud-init để tự động tạo VM?

cloud-init là một công cụ tự động triển khai mạnh mẽ mà Canonical, công ty đứng sau Ubuntu, phát triển.

Với cloud-init, bạn có thể cài đặt và triển khai hệ điều hành Linux cũng như định cấu hình các khía cạnh khác của máy ảo. Ví dụ: bạn có thể sử dụng cloud-init để thiết lập tài khoản người dùng, cài đặt và định cấu hình phần mềm, thêm khóa SSH, v.v.

Hiện tại, phần lớn các nhà cung cấp dịch vụ đám mây như Azure, Linode và Amazon Web Services (AWS) đều hỗ trợ cloud-init.

Mặc dù cloud-init bắt đầu trên Ubuntu, nhưng giờ đây nó hỗ trợ tất cả các bản phân phối chính của Linux, chẳng hạn như openSUSE, Debian, Red Hat Enterprise Linux (RHEL), v.v.

Ngoài việc triển khai phần mềm trên đám mây, bạn cũng có thể sử dụng cloud-init để định cấu hình và cài đặt phần mềm trên máy chủ tại chỗ hoặc môi trường ảo như VirtualBox, KVM và VMware.

Chúng ta sẽ sử dụng nền tảng đám mây Microsoft Azure để tự động triển khai máy chủ Ubuntu bằng cloud-init.

Bước 1: Tạo Tập lệnh khởi tạo đám mây

tập lệnh khởi tạo đám mây sử dụng các mô-đun để định cấu hình các khía cạnh khác nhau của hệ thống của bạn. Ví dụ, bạn sẽ sử dụng người dùng mô-đun để định cấu hình thông tin người dùng và tài khoản, và dây bảo vệ mô-đun để định cấu hình WireGuard, v.v. Có rất nhiều mô-đun khác mà bạn có thể sử dụng ngay lập tức.

Hãy tạo một tập lệnh khởi tạo đám mây để tự động hóa hầu hết những thứ bạn định cấu hình khi thiết lập một máy ảo mới.

Chúng tôi sẽ tạo một người dùng có tên “mwiza” và gán cho nó một mật khẩu. Để đơn giản, hãy sử dụng mật khẩu văn bản đơn giản, nhưng bạn có thể mã hóa nó nếu muốn. Ngoài ra, hãy thêm khóa SSH của người dùng vào các khóa được ủy quyền. Điều này cho phép bạn tắt đăng nhập mật khẩu SSH sau này để bảo mật tốt hơn.

Ngoài việc tạo người dùng mới, tập lệnh sẽ thực hiện như sau:

  • Viết một tập tin: Tạo một tệp đơn giản và ghi nội dung vào đó bằng cách sử dụng write_files mô-đun. Tệp sẽ được đặt trong thư mục chính. Bạn có thể sử dụng các khái niệm tương tự để tạo các tệp phức tạp hơn trong tương lai.
  • Chạy lệnh: Chúng tôi sẽ chạy các lệnh đơn giản để định cấu hình tường lửa UFW, nhưng nó có thể là bất kỳ lệnh Linux nào khác. sử dụng runcmd mô-đun để chạy bất kỳ lệnh nào bạn chọn; nó tương tự như việc chạy các lệnh Linux bằng cách thực thi các tập lệnh Bash.
  • Định cấu hình ngôn ngữ: Điều này đặt các ngôn ngữ ưa thích của bạn, chẳng hạn như bố cục bàn phím, ngôn ngữ ưa thích, múi giờ, v.v.
  • Cài đặt các gói: Sử dụng trình quản lý gói yêu thích của bạn để cài đặt các gói trên hệ thống của bạn. Ví dụ: trên các hệ thống dựa trên Debian, bạn có thể sử dụng APT.

Đây chỉ là một số mô-đun bạn có thể sử dụng từ cloud-init; có một số mô-đun khác để tự động hóa tất cả mọi thứ.

Đây là tập lệnh khởi tạo đám mây đầy đủ để định cấu hình tài khoản người dùng mới. Hãy nhớ thay thế khóa SSH bằng khóa chính xác. Ngoài ra, vui lòng thay đổi tên người dùng và bất kỳ chi tiết nào khác.

 vim: syntax=yaml

# Add system users here
users:
  - name: mwiza
  groups: users, sudo
  shell: /bin/bash
  gecos: mwiza
  plain_text_passwd: Live-laugh-love12345G123
  lock_passwd: false
  ssh_authorized_keys:
    - ssh-ed25519 BSHSDSDS3NzaC1sdfSDGSDSDJ1KSDB:PWELJWEEWeKBrkXWbLJBs;ldfkagfafk===C6li71Ra6i+NKkajdfi userkey@email.com

# Install, update, and upgrade packages
package_upgrade: true
package_update: true
package_reboot_if_require: true

packages:
  - traceroute
  - net-tools
  - fail2ban

# Set locales
locale: en_UK
timezone: Etc/UTC
keyboard:
  layout: nb

write_files:
- path: /etc/salt/minion.d/master_ip_port.conf
content: |
master: salt
master_port: 4506
publish_port: 4505
- path: /home/mwiza/cloud-init.txt
content: |
created by cloud-init in azure

# Running Bash commands to configure software and services
runcmd:
  - ufw enable
  - ufw allow ssh
  - ufw allow 80
  - systemctl enable ufw

# Power off the VM after initialization is finalized
shutdown: poweroff

Tập lệnh khởi tạo trên đám mây sử dụng YAML, vì vậy hãy đảm bảo rằng phần thụt đầu dòng chính xác, nếu không, tập lệnh sẽ không hoạt động như mong đợi.

Bước 2: Tạo tài nguyên máy ảo

Bước tiếp theo là tạo tài nguyên cần thiết trong Azure cho máy ảo. Đăng nhập vào Azure nếu bạn đã có tài khoản hoặc tạo một tài khoản dùng thử miễn phí bằng cách truy cập vào azure.microsoft.com.

Trên trang chủ cổng thông tin Azure, nhấp vào Tạo tài nguyên cái nút. Từ danh sách các dịch vụ Azure phổ biến nhất, hãy chọn Máy ảo.

Trang tiếp theo cung cấp cho bạn thông tin để tạo tài nguyên máy ảo như đĩa cứng, kết nối mạng, v.v.

Đặt cho máy ảo của bạn một cái tên có ý nghĩa và chọn khu vực triển khai. Ngoài ra, hãy tạo một nhóm tài nguyên cho máy ảo của bạn hoặc sử dụng một nhóm hiện có.

Bên dưới xác thực gõ, chọn Mật khẩu tùy chọn và cung cấp tên người dùng và mật khẩu mạnh của bạn.

Sau khi bạn điền vào tất cả các trường trên trang này, thông tin chi tiết của bạn sẽ tương tự như sau.

trang khởi tạo vm trên nhà cung cấp đám mây Azure

Bước 3: Thêm Tập lệnh khởi tạo đám mây của bạn

Tiếp theo, nhấp chuột vào Trình độ cao tab để thêm tập lệnh khởi tạo đám mây. Sao chép và dán tập lệnh cloud-init từ bước đầu tiên vào trường dữ liệu tùy chỉnh.

thêm tập lệnh cloud-init vào azure vm

Cuối cùng, bấm vào Đánh giá + tạo cái nút. Nếu mọi thứ đều ổn, bài kiểm tra sẽ vượt qua. Nếu không, người tạo máy ảo Azure sẽ hướng dẫn bạn cách chỉnh sửa.

Bước 4: Đăng nhập vào máy ảo của bạn

Sử dụng thông tin tổng quan về VM để lấy địa chỉ IP công cộng của máy ảo của bạn và đăng nhập qua SSH. Nếu bạn đã sử dụng đúng khóa SSH, hệ thống sẽ không nhắc bạn nhập mật khẩu người dùng.

Sau khi đăng nhập, bạn có thể kiểm tra xem các tệp bạn muốn tạo thông qua tập lệnh có ở đó không. Ngoài ra, hãy tìm các gói đã cài đặt có APT và kiểm tra xem tường lửa đã được cấu hình đúng chưa bằng cách sử dụng trạng thái sudo ufw yêu cầu.

cloud-init cũng ghi lại thông tin quan trọng trong /var/log/cloud-init.log tài liệu. Nó chứa các thông báo chi tiết về tất cả các sự kiện đã xảy ra trong quá trình khởi tạo cloud-init. Bạn có thể kiểm tra tệp này bằng lệnh cat như sau:

 cat /var/log/cloud-init.log 

Tự động tạo máy ảo với cloud-init

cloud-init là một công cụ mạnh mẽ giúp bạn tự động cài đặt và thiết lập Linux. Bạn có thể sử dụng nó trên đám mây và trên các máy chủ tại chỗ. Cho dù bạn chỉ muốn tự động hóa việc triển khai máy ảo của mình hay cần triển khai các máy chủ Linux trên quy mô lớn, thì cloud-init là một lựa chọn tuyệt vời.

Trên một lưu ý liên quan, hãy luôn bảo mật thông tin đăng nhập SSH cho các máy ảo dựa trên đám mây của bạn để tránh vi phạm bảo mật.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *