Cách kích hoạt EPEL Repository trên CentOS với Ansible

Tác giả Network Engineer, T.Một 09, 2022, 06:57:53 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cách kích hoạt EPEL Repository trên CentOS với Ansible


Trong bài viết này, mình sẽ hướng dẫn bạn cách kích hoạt kho EPEL trên CentOS bằng Ansible. Vậy hãy bắt đầu.

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

Để kích hoạt kho EPEL trên máy CentOS 7 hoặc CentOS 8 với Ansible:

  • Bạn phải cài đặt Ansible trên máy tính của mình.
  • Bạn phải có máy CentOS 7 hoặc CentOS 8 được cấu hình để tự động hóa Ansible.

Có rất nhiều bài viết trên mạng dành riêng cho cài đặt Ansible và cấu hình máy chủ để tự động hóa Ansible. Bạn có thể muốn xem những bài báo này nếu cần, cho mục đích của bạn.

2. Bật kho lưu trữ EPEL trên máy chủ CentOS

Đầu tiên, tạo một thư mục dự án ~/project bằng lệnh sau:

Mã nguồn [Chọn]
$ mkdir -pv ~/project
Điều hướng đến thư mục ~/project/playbooks bằng lệnh sau:

Mã nguồn [Chọn]
$ cd ~/project
Tạo một tập tin hosts mới trong thư mục dự án và mở nó bằng trình soạn thảo văn bản nano như sau:

Mã nguồn [Chọn]
$ nano hosts
Một tập tin hosts trống sẽ được tạo và mở bằng trình soạn thảo văn bản nano.


Nhập địa chỉ IP hoặc tên DNS của máy CentOS 7 và CentOS 8 đích (nơi bạn muốn kích hoạt hệ thống lưu trữ EPEL) trong phần centos của tập tin hosts như sau:

Mã nguồn [Chọn]
[centos]
192.168.20.169
192.168.20.222

Ở đây, 192.168.20.169 là địa chỉ IP của máy ảo CentOS 8 của mình và 192.168.20.222 là địa chỉ IP của máy ảo CentOS 7 của mình. Những điều này sẽ khác đối với bạn. Đảm bảo thay thế các địa chỉ IP mẫu bằng danh sách của riêng bạn từ bây giờ.

Lưu ý: Bạn có thể tìm địa chỉ IP của các máy chủ CentOS của mình bằng lệnh sau:

Mã nguồn [Chọn]
$ hostname -I
Nếu máy chủ CentOS của bạn có tên DNS được cấu hình, bạn có thể tìm thấy chúng bằng lệnh sau:

Mã nguồn [Chọn]
$ hostname -A
Tập tin hosts lưu trữ cuối cùng sẽ trông như thể hiện trong ảnh chụp màn hình bên dưới.

Bây giờ, lưu tập tin hosts bằng cách nhấn <Ctrl> + X , sau đó nhấn Y và <Enter>


Tạo một tập tin cấu hình Ansible.cfg như sau:

Mã nguồn [Chọn]
$ nano ansible.cfg
Nhập các dòng sau vào tập tin ansible.cfg:

Mã nguồn [Chọn]
[defaults]
inventory=./hosts

Khi bạn đã hoàn thành bước này, hãy lưu tập tin bằng cách nhấn <Ctrl> + X , sau đó nhấn Y và <Enter>


Bây giờ, hãy tạo một playbook Ansible mới enable_epel_repo.yaml trong thư mục playbooks như sau:

Mã nguồn [Chọn]
$ nano playbooks/enable_epel_repo.yaml
Tiếp theo, nhập các mã sau vào tập tin enable_epel_repo.yaml

Mã nguồn [Chọn]
- hosts: centos
user: ansible
tasks:
- name: Enable EPEL Repository on CentOS 8
dnf:
name: epel-release
state: latest
become: True
when: ansible_facts['os_family'] == 'RedHat' and ansible_facts
['distribution_major_version'] == '8'
- name: Enable EPEL Repository on CentOS 7
yum:
name: epel-release
state: latest
become: True
when: ansible_facts['os_family'] == 'RedHat' and ansible_facts
['distribution_major_version'] == '7'

Trong mã này:

  • hosts: centos, chỉ chọn các máy chủ trong nhóm centos từ tập tin máy chủ.
  • user: ansible, tên người dùng SSH của máy chủ (nơi Ansible sẽ chạy các tác vụ) sẽ là ansible.

Chúng ta đã xác định 2 nhiệm vụ ở đây. Một cho máy chủ CentOS 8 và một cho máy chủ CentOS 7. Lý do chúng ta làm theo cách này là vì trình quản lý gói mặc định cho CentOS 8 là DNF và CentOS 7 là YUM. Một tác vụ (tác vụ đầu tiên) sẽ sử dụng trình quản lý gói DNF và sẽ chỉ chạy trên máy chủ CentOS 8. Tác vụ khác (tác vụ cuối cùng) sẽ sử dụng trình quản lý gói YUM và sẽ chỉ chạy trên máy chủ CentOS 7.

Hai nhiệm vụ này gần như giống hệt nhau. Sự khác biệt duy nhất là các mô-đun trình quản lý gói (dnf và yum) được sử dụng trong các tác vụ và mã kiểm tra phiên bản CentOS.

dnf và yum Mô-đun Ansible chấp nhận các tham số giống nhau.

Ở đây, tên: epel-release, gói sẽ được cài đặt là epel-release.

state: mới nhất, gói epel-release sẽ được cài đặt. Nếu gói đã được cài đặt và có phiên bản cập nhật thì gói đó sẽ được cập nhật.

when: điều kiện, nếu điều kiện là true thì tác vụ sẽ chạy. Nếu không, tác vụ sẽ không chạy.

ansible_facts, được sử dụng để truy cập các biến máy chủ Ansible.

ansible_facts['os_family'] == 'RedHat', kiểm tra xem hệ điều hành máy chủ là CentOS hay RedHat.

ansible_facts['distribution_major_version'] == '8', kiểm tra xem phiên bản hệ điều hành máy chủ là 8 (trong trường hợp này là CentOS 8 hoặc RedHat 8).

ansible_facts['distribution_major_version'] == '7', kiểm tra xem phiên bản hệ điều hành máy chủ có phải là 7 hay không (trong trường hợp này là CentOS 7 hoặc RedHat 7).

Sau đó, lưu tập tin enable_epel_repo.yaml bằng cách nhấn <Ctrl> + X , tiếp theo là Y và <Enter>


Bây giờ, bạn có thể chạy playbook Ansible như sau:

Mã nguồn [Chọn]
$ ansible-playbook playbooks/enable_epel_repo.yaml
Playbook sẽ chạy mà không có bất kỳ lỗi nào và kho EPEL phải được bật trên cả máy chủ CentOS 7 và CentOS 8.


Như bạn có thể thấy, kho EPEL được kích hoạt trong máy chủ CentOS 8 của mình.


Như bạn có thể thấy, kho EPEL được kích hoạt trong máy chủ CentOS 7 của mình.


Đó là cách bạn kích hoạt kho EPEL trên CentOS bằng Ansible. Mình hy vọng bài viết này đã giúp ích cho bạn.