1. Trang chủ
  2. » Luận Văn - Báo Cáo

tìm hiểu và triển khai hệ thống quản lý cấu hình sử dụng ansible

63 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm Hiểu Và Triển Khai Hệ Thống Quản Lý Cấu Hình Sử Dụng Ansible
Tác giả Phan Văn Phụng
Người hướng dẫn TS. Trương Tiến Vũ
Trường học Đại Học Duy Tân
Chuyên ngành Kỹ Thuật Mạng
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2022
Thành phố Đà Nẵng
Định dạng
Số trang 63
Dung lượng 5,2 MB

Nội dung

Bằng cách sử dụng Ansible, chúng ta sẽ thực hiện việc tự động hóa hàng loạt nhanh hơn, do đó sẽ giúp giảm thiểu thời gian thao tác trên từng server được cài đặt, và thậm chí nó có thể đạ

Trang 1

ĐẠI HỌC DUY TÂN TRƯỜNG KHOA HỌC MÁY TÍNH KHOA KỸ THUẬT MẠNG MÁY TÍNH & TRUYỀN THÔNG

BỘ MÔN KỸ THUẬT MẠNG



KHÓA LUẬN TỐT NGHIỆP

Tên đề tài:

TÌM HIỂU VÀ TRIỂN KHAI

HỆ THỐNG QUẢN LÝ CẤU HÌNH SỬ DỤNG ANSIBLE

Trang 2

LỜI CẢM ƠN

Đầu tiên, tôi xin gửi lời cảm ơn chân thành đến thầy Trương Tiến Vũ đãnhiệt tình giúp đỡ tôi trong quá trình lựa chọn cũng như trong quá trình phát triểnKhóa luận Em cũng xin chân thành cảm ơn Ban giám hiệu nhà trường, các thầy côtrong khoa Công nghệ thông tin và các phòng ban nhà trường đã tạo điều kiện tốtnhất cho tôi trong suốt quá trình học tập và làm Khóa luận

Để có thể thực hiện và hoàn thành đồ án này, những kiến thức đã được học

là vô cùng cần thiết, vì vậy tôi xin gửi lời cảm ơn tới tất cả các thầy cô giáo đãtruyền đạt cho tôi những bài học quý báu trong thời gian vừa qua

Cuối cùng, tôi xin gửi lời cảm ơn tới gia đình tôi, nguồn động viên to lớn đãgiúp tôi cố gắng trong học tập và cuộc sống

Đà Nẵng, ngày 23 tháng 5 năm 2022

Sinh viên

Phan Văn Phụng

[1]

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan:

a Những nội dung trong khóa luận này là do tôi thực hiện dưới sự hướngdẫn trực tiếp của thầy Trương Tiến Vũ

b Mọi tham khảo dùng trong khóa luận đều được trích dẫn rõ ràng và trungthực tên tác giả, tên công trình, thời gian, địa điểm công bố

c Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xinchịu hoàn toàn trách nhiệm

[2]

Trang 4

Mục Lục

LỜI CẢM ƠN

LỜI CAM ĐOAN

DANH MỤC HÌNH ẢNH

DANH MỤC BẢNG BIỂU

DANH MỤC TỪ VIẾT TẮT

LỜI MỞ ĐẦU

CHƯƠNG 1 TỔNG QUAN VỀ QUẢN TRỊ MẠNG

1.1 Tổng quan về quản trị mạng

1.1.1 Giới thiệu về quản trị mạng

1.1.2 Kiến trúc Manager/Agent trong quản trị mạng

1.1.3 Các kiểu mô hình quản lý mạng

1.1.4 Nhiệm vụ của quản trị mạng

1.2 Tổng quan về quản lý cấu hình

1.2.1 Giới thiệu về quản lý cấu hình

1.2.2 Lợi ích của quản lý cấu hình

1.2.3 Các tiêu chí đánh giá một hệ thống quản lý cấu hình

1.2.4 Các thủ tục triển khai quản lý cấu hình

1.3 Tự động hoá mạng

1.3.1 Khái niệm

1.3.2 Lợi ích của tự động hóa mạng

1.3.3 Một số chức năng của tự động hoá mạng

1.4 Một số công cụ quản lý cấu hình phổ biến

1.4.1 Ansible

1.4.2 Puppet

1.4.3 Chef

CHƯƠNG 2 NGHIÊN CỨU VỀ CÔNG CỤ QUẢN LÝ CẤU HÌNH ANSIBLE

2.1 Tìm hiểu về Ansible và các thành phần cơ bản: SSH, YAML

2.1.1 Sơ lược về SSH

2.1.2 Sơ lược về YAML

2.2 Lệnh Ansible Ad-hoc

[3]

Trang 5

2.2.1 Khái niệm lệnh Ansible Ad-hoc

2.2.3 Cú pháp lệnh ansible ad-hoc

2.2.4 Một số lệnh Ansible Ad-hoc thường sử dụng

2.3 Ansible playbook

2.3.1 Khái niệm về Ansible playbook

2.3.2 Cách thức hoạt động của Ansible playbook

2.3.3 Cách tạo Ansible playbook

2.4 Ansible inventory

2.4.1 Static Inventory

2.4.2 Dynamic Inventory

CHƯƠNG 3 TRIỂN KHAI HỆ THỐNG QUẢN LÝ CẤU HÌNH SỬ DỤNG ANSIBLE

3.1 Mô hình triển khai hệ thống quản lý cấu hình sử dụng Ansible

3.2 Các cài đặt và cấu hình cơ bản

3.2.1 Cài đặt ansible trên node Ansible_server-1

3.2.2 Cấu hình SSH Key

3.2.3 Khai báo file Inventory

3.3 Thực hiện cấu hình tự động cho các thiết bị Router, Switch

3.3.1 Kiểm tra kết nối từ máy chủ Ansible đến các thiết bị

3.3.2 Tạo và thực thi các Playbook cấu hình cho Router, Switch

3.4 Thực hiện các cài đặt tự động trên Client1

3.4.1 Kiểm tra kết nối từ máy chủ Ansible đến Client1

3.4.2 Sử dụng các lệnh Ad-hoc cơ bản

3.4.3 Tạo và thực thi các Playbook cài đặt cho Client1

KẾT LUẬN

TÀI LIỆU THAM KHẢO

[4]

Trang 6

DANH MỤC HÌNH ẢNH

Hình 1.1 Mô hình Manager/Agent của hệ thống quản trị mạng 12

Hình 1.2 Các thủ tục triển khai Configuration Management 17

Hình 2.1 Cách thức hoạt động của Ansible 31

Hình 3.1 Mô hình triển khai hệ thống quản lý cấu hình sử dụng Ansible 46

Hình 3.2 Kết quả của lệnh kiểm tra phiên bản Ansible 47

Hình 3.3 Kết quả của quá trình tạo khóa SSH 49

Hình 3.4 Kết quả của lệnh sao chép khoá SSH sang node Client1 49

Hình 3.5 Khai báo Inventory 50

Hình 3.6 Kết quả thực hiện Ping đến các thiết bị Cisco 51

Hình 3.7 Liệt kê các file yml đã tạo 55

Hình 3.8 Kết quả sau khi thực thi Playbook SW2_3.yml 55

Hình 3.9 Kết quả lệnh ping đến Client1 đã thành công 55

Hình 3.10 Kết quả sử dụng lệnh kiểm tra dung lượng RAM trên Clien1 56

Hình 3.11 Kết quả sử dụng lệnh xem ngày giờ trên trên Client1 56

Hình 3.12 Kết quả sử dụng lệnh reboot 56

Hình 3.13 Kết quả sử dụng lệnh cài đặt Python trên PC 57

Hình 3.14 Kết quả sử dụng module command để kiểm tra phiên bản kernel Client1 57

Hình 3.15 Kết quả sau khi chạy thành công playbook 1 58

Hình 3.16 Kết quả sử dụng lệnh kiểm tra các gói đã được cài đặt 58

Hình 3.17 Nội dung file index.html 59

Hình 3.18 Kết quả tại node Client 1 sau khi chạy playbook 2 60

[5]

Trang 7

DANH MỤC BẢNG BIỂU

Bảng 1.1 So sánh giữa Workgroup và Domain 14

Bảng 2.1 Cú pháp YAML 26

Bảng 2.2 So sánh cấu trúc giữa Ansible, Puppet và Chef: 29

Bảng 2.3 Chức năng các tham số inventory 42

[6]

Trang 8

DANH MỤC TỪ VIẾT TẮT

Từ viết tắt Diễn giải

AWS Amazon Web Services

DNS Domain Name System

DDoS Distributed Denial of Service

FTP File Transfer Protocol

GUI Graphical User Interface

HTML HyperText Markup Language

HTTP Hypertext Transfer Protocol

IP Internet Protocol

JSON JavaScript Object Notation

LAN Local Area Network

LDAP Lightweight Directory Access Protocol

MIB Management Information Base

OS Operating System

PDU Protocol data unit

RAM Random Access Memory

SSH Secure Shell

SMI Structure of Management Information

VM Virtual Machine

WAN Wide Area Network

YAML YAML Ain’t Markup Language

[7]

Trang 9

LỜI MỞ ĐẦU

1) Lý do chọn đề tài

Việc cài đặt và cấu hình các máy chủ thường được ghi chép lại trong tài liệudưới dạng các câu lệnh đã chạy, với giải thích kèm theo Cách thức này gây mệtmỏi cho quản trị viên vì phải làm theo từng bước ở mỗi máy khi thiết lập mới, và cóthể dẫn đến sai lầm, thiếu sót

Để giải quyết vấn đề trên thì cần một giải pháp để tự động hóa hàng loạt cáccông việc liên quan đến hạ tầng CNTT như tự động cấu hình, tự động triển khaiphần mềm, và nhiều công việc khác nữa

Bằng cách sử dụng Ansible, chúng ta sẽ thực hiện việc tự động hóa hàng loạtnhanh hơn, do đó sẽ giúp giảm thiểu thời gian thao tác trên từng server được càiđặt, và thậm chí nó có thể đạt tới những điều mà ta chưa từng thấy trước đó

Nhận thấy lợi ích của việc sử dụng Ansible nên tôi đã chọn đề tài “Tìm hiểu

& triển khai hệ thống quản lý cấu hình sử dụng Ansible” để làm hướng nghiêm

cứu trong báo cáo đồ án chuyên ngành

2) Mục tiêu của đề tài

Sau khi hoàn thành đề tài này sinh viên có thể nắm được những kiến thức cơbản về quản trị mạng, quản trị cấu hình Việc nghiên cứu công cụ nguồn mở cũng

sẽ giúp cho sinh viên có cái nhìn tích cực hơn về việc lựa chọn các giải pháp nguồn

mở để triển khai cho hệ thống mạng doanh nghiệp Từ đó, sinh viên có thể sử dụngcông cụ Ansible để triển khai hệ thống Configuration Management

3) Đối tượng nghiên cứu

- Nghiên cứu về cách triển khai hệ thống cấu hình sử dụng công cụ Ansible

- Nghiên cứu về công cụ Ansible

4) Phạm vi nghiên cứu

- Tìm hiểu về quản lý cấu hình và công cụ quản lý cấu hình tự động Ansible

- Tìm hiểu về cách cài đặt và sử dụng Ansible trên hệ điều hành CentOS7

- Nghiên cứu về việc sử dụng Ansible để triển khai hệ thống quản lý cấu hình

[8]

Trang 10

5) Ý nghĩa khoa học và thực tiễn

để cung cấp kết quả tốt hơn Việc triển khai quản lý cấu hình sử dụng ansible là mộtlựa chọn rất tốt với các doanh nghiệp

6) BỐ CỤC KHOÁ LUẬN

Bố cục khóa luận được chia thành 3 chương:

Chương 1: Tổng quan về quản trị mạng

Chương 2: Nghiên cứu về vông cụ quản lý cấu hình Ansible

Chương 3: Triển khai hệ thống quản lý cấu hình sử dụng Ansible

[9]

Trang 11

CHƯƠNG 1 TỔNG QUAN VỀ QUẢN TRỊ MẠNG1.1 Tổng quan về quản trị mạng

1.1.1 Giới thiệu về quản trị mạng

Quản trị mạng được định nghĩa là các công việc quản trị mạng lưới bao gồmcung cấp các dịch vụ hỗ trợ, đảm bảo mạng lưới hoạt động hiệu quả, đảm bảo mạnglưới cung cấp đúng chỉ tiêu định ra

Chúng ta có thể khái quát công việc quản trị mạng bao gồm:

 Quản trị cấu hình, tài nguyên mạng: Bao gồm các công tác quản lý, kiểm soátcấu hình, quản lý tài nguyên cấp phát cho các đối tượng sử dụng khác nhau

 Quản trị người dùng, dịch vụ mạng: bao gồm các công tác quản lý người sửdụng trên hệ thống và đảm bảo dịch vụ cung cấp có độ tin cậy cao, chất lượngđảm bảo theo đúng các chỉ tiêu đã đề ra

 Quản trị hiệu năng, hoạt động mạng: bao gồm các công tác quản lý, giám sáthoạt động mạng lưới, đảm bảo các hoạt động của thiết bị hệ thống ổn định

 Quản trị an ninh, an toàn mạng: bao gồm các công tác quản lý, giám sát mạnglưới, các hệ thống để đảm bảo phòng tránh các truy nhập trái phép Việc phòngchống, ngăn chặn sự lây lan của các loại virus máy tính, các phương thức tấncông như DDos làm tê liệt hoạt động của mạng cũng là một phần rất quan trọngtrong công tác quản trị, an ninh, an toàn mạng

Để đảm bảo sự hoạt động liên tục của mạng, đặc biệt là những mạng lớn,người quản trị mạng cần phải nắm được đầy đủ và thường xuyên các thông tin vềcấu hình, về sự cố và tất cả các số liệu thống kê liên quan đến việc sử dụng mạng

Để hiểu rõ các chức năng, nhiệm vụ của một người quản trị mạng, trước hếtcần hiểu rõ kiến trúc của một hệ thống quản trị mạng cũng như cách nó thực thinhiệm vụ của mình

Các công việc hàng ngày và kỹ năng thị trường cần có của một quản trị viên:

 Cấu hình và duy trì mạng máy tính nội bộ của công ty

 Quản lý các công cụ bảo mật mạng, ví dụ như tường lửa, hệ thống diệt virus vàphát hiện xâm nhập

[10]

Trang 12

 Xác định, khắc phục sự cố, giải quyết và ghi lại các vấn đề kết nối và hiệu suấtmạng.

 Cài đặt và hỗ trợ điện thoại đường dây cứng và các thiết bị viễn thông nối mạngkhác

 Giám sát hiệu suất mạng và tối ưu hóa mạng để có tốc độ và tính sẵn sàng tốiưu

 Cài đặt, cấu hình và duy trì phần cứng mạng, ví dụ, router và chuyển mạchCisco

 Triển khai, cấu hình và nâng cấp phần mềm mạng, chẳng hạn như chương trìnhchuẩn đoán hoặc diệt virus doanh nghiệp

 Triển khai và duy trì các hệ thống sao lưu và khôi phục khẩn cấp cho các máychủ mạng quan trọng

 Quản trị viên mạng có nhiệm vụ điều chỉnh quyền truy cập của người dùng vàocác file nhạy cảm để bảo vệ chống lại vi phạm an ninh nội bộ

 Trong các công ty nhỏ hơn, quản trị viên mạng thường chịu trách nhiệm về hỗtrợ máy tính để bàn của người dùng cuối và bảo trì máy chủ cũng như các thiết

bị được kết nối mạng khác

1.1.2 Kiến trúc Manager/Agent trong quản trị mạng

Kiến trúc Manager/Agent là kiến trúc quản trị mạng cơ bản bao gồm một hệquản trị (manager), một hệ bị trị (managed system), một cơ sở dữ liệu chứa thôngtin quản trị và giao thức quản trị mạng

Tiến trình Manager cung cấp giao diện giữa người quản trị mạng và các thiết

bị được quản trị, đồng thời thực hiện các nhiệm vụ như là đo lượng lưu thông trênmột đoạn mạng cục bộ ở xa, hoặc ghi tốc độ truyền và địa chỉ vật lý của giao diệnLAN trên một Router Manager cũng bao gồm cả một số loại kết xuất để hiển thịcác dữ liệu quản trị, thống kê … ví dụ điển hình của kiểu hiển thị đồ họa đó là mộtbản đồ về topology liên mạng thể hiện các vị trí của các LAN segments, từ đó cóthể chọn một segment cụ thể nào đó và hiển thị trạng thái hoạt động hiện hành củanó

[11]

Trang 13

Còn hệ bị quản trị bao gồm tiến trình Agent và các đối tượng quản trị Tiếntrình Agent thực hiện các thao tác quản trị mạng như là đặt các tham số cấu hình vàcác thống kê hoạt động hiện hành cho một Router trên một segment cho trước Cácđối tượng quản trị bao gồm các trạm làm việc, các máy chủ, hub, các kênh truyền

… gắn với các đối tượng này là các thuộc tính có thể được xác định tĩnh (như tốc

độ của giao diện), động (như các mục trong bảng chọn đường) hoặc đòi hỏi đolường tiếp tục (như số gói tin truyền không có lỗi trong một thời đoạn cho trước)

Cơ sở dữ liệu chứa thông tin quản trị mạng được gọi là cơ sở thông tin quảntrị (MIB) được gắn với cả hai bên Tổ chức logic của MIB được gọi là cấu trúc củathông tin quản trị (SMI) SMI được tổ chức thành cấu trúc cây, bắt đầu từ gốc vớicác cành chứa các đối tượng quản trị được phân loại logic

Giao thức quản trị mạng cung cấp phương thức liên lạc giữa manager, cácđối tượng bị quản trị và các agent Để cấu trúc tiến trình truyền thông, giao thứcphải xác định các đơn vị dữ liệu (PDU) thể hiện các thủ tục của nó

Hình 1.1 Mô hình Manager/Agent của hệ thống quản trị mạng

1.1.3 Các kiểu mô hình quản lý mạng

Có hai kiểu mô hình quản lí mạng mà chúng ta hay thấy đó là mô hình mạngWorkgroup và mô hình mạng Domain Ở mỗi mô hình đều có những ưu nhượcđiểm riêng và phù hợp với từng mục đích khác nhau của người sử dụng

 Mô hình mạng Workgroup

[12]

Trang 14

Ở mô hình này có một nhóm máy tính mạng cùng chia sẻ tài nguyên như file

dữ liệu, máy in Đó là một nhóm logic các máy tính mà tất cả chúng có cùng tênnhóm Ở một mạng cục bộ LAN có thể có nhiều nhóm làm việc Workgroup khácnhau cùng kết nối

Trong mô hình này, các máy tính có quyền hạn ngang nhau và không có cácmáy tính chuyên dụng làm nhiệm vụ cung cấp dịch vụ hay quản lý Các máy tính tựbảo mật và quản lý các tài nguyên của riêng mình, hơn hết các máy tính cục bộ nàycũng tự chứng thực cho người dùng cục bộ

Với mô hình này các máy tính có quyền chia sẻ tài nguyên ngang nhau màkhông cần sự chỉ định của server Sự quản trị về tài khoản người dùng, bảo mật chonguồn tài nguyên chia sẻ không được tập trung hóa Bạn có thể kết nối tới mộtnhóm đã tồn tại hoặc khởi tạo một nhóm mới

Mô hình Workgroup không yêu cầu máy tính chạy trên hệ điều hànhWindows Server Với nhóm máy tính dưới 10 máy và được đặt gần nhau thì môhình mạng Workgroup là sự lựa chọn ưu việt Tuy nhiên ở mô hình này mỗi ngườidùng cần có một tài khoản người dùng trên mỗi máy tính mà họ muốn đăng nhập,nếu như có bất kì sự thay đổi nào liên quan đến tài khoản đều cần thực hiện trên tất

cả các máy tính trong nhóm làm việc Việc chia sẻ thiết bị và file được xử lý bởicác máy tính riêng, và chỉ cho người dùng có tài khoản trên máy tính đó được sửdụng

 Mô hình mạng Domain

Một nhóm máy tính mạng cùng chia sẻ cơ sở dữ liệu thư mục tập trung đượcgọi là mô hình Domain Thư mục dữ liệu chứa tài khoản người dùng và thông tinbảo mật cho toàn bộ Domain

Ngược lại với mô hình Workgroup, với mô hình Domain thì việc quản lý vàchứng thực người dùng mạng tập trung tại máy tính Primary Domain Controller.Domain controller là một Server quản lý tất cả các khía cạnh bảo mật của Domain.Các tài nguyên mạng cũng được quản lý tập trung và cấp quyền hạn cho từng ngườidùng Lúc đó trong hệ thống có các máy tính chuyên dụng làm nhiệm vụ cung cấpcác dịch vụ và quản lý các máy trạm

[13]

Trang 15

Trong một Domain, thư mục chỉ tồn tại trên các máy tính được cấu hình nhưmáy điều khiển miền Việc bảo mật hay quản trị trong Domain được tập trung hóa.Một domain không được xem như một vị trí đơn hoặc cấu hình mạng riêng biệt.Các máy tính trong cùng domain có thể ở trên một mạng LAN hoặc WAN Chúng

có thể giao tiếp với nhau qua bất kỳ kết nối vật lý nào

Khác với Workgroup nếu người dùng có bất cứ thay đổi nào thì sự thay đổi

đó sẽ được cập nhật tự động hóa trên toàn bộ Domain Tuy nhiên một nhược điểmcủa Domain cần được nhắc tới đó chính là việc Domain phải tồn tại trước khi ngườidùng tham gia vào nó Muốn tham gia Domain cần có tài khoản người dùng đượcngười quản trị Domain cung cấp cho máy tính người dùng tới Domain đó.Bảng 1 So sánh giữa Workgroup và Domain1

Tính bảo mật thấp, không tập trung dữ

liệu

Tính bảo mật cao vì dữ liệu được tậptrung tại máy server

Triển khai được ít dịch vụ mạng Có thể triển khai hầu hết các dịch vụ

Các tài nguyên không được quản lí tập

trung nên khó tìm kiếm hay sử dụng

Dễ tìm kiếm và sử dụng các tài nguyênmạng

1.1.4 Nhiệm vụ của quản trị mạng

Nhiệm vụ quản trị mạng bao gồm:

- Theo dõi hoạt động mạng: Người quản trị mạng phải nắm rõ nguyên tắc hoạtđộng của thiết bị cũng như các giao thức, các ứng dụng để theo dõi hệ thốngmạng hoạt động có sai lệch hay không

- Tăng cường khả năng tự động: một hệ thống mạng tối ưu phải có hệ thống dựphòng khi có sự cố xảy ra

- Theo dõi thời gian đáp ứng trong mạng: phải tối ưu hóa về mặt định tuyến, chấtlượng dịch vụ … sao cho việc sử dụng tài nguyên một cách tốt nhất

- Bảo mật: Cần phải nắm rõ hệ thống mạng để bảo mật mạng

- Cung cấp khả năng lưu trữ dữ liệu

[14]

Trang 16

- Phát triển dịch vụ: người sử dụng luôn mong chờ những dịch vụ mới hơn, tốthơn khi hệ thống mạng phát triển hơn.

- Cân bằng các nhu cầu khác nhau: người sử dụng luôn đòi hỏi các phần mềm ứngdụng khác nhau với những mức hỗ trợ khác nhau và yêu cầu khác nhau về mức

độ hoạt động cũng như khả năng bảo mật

- Giảm tối đa thời gian ngừng hoạt động do sự cố: sử dụng các biện pháp dựphòng để đảm bảo khả năng cung cấp dịch vụ và tài nguyên mạng

- Kiểm soát chi phí: theo dõi và kiểm soát mức độ sử dụng tài nguyên để phù hợpvới mức chi phí chấp nhận được

1.2 Tổng quan về quản lý cấu hình

1.2.1 Giới thiệu về quản lý cấu hình

Quản lý cấu hình là một quá trình thiết lập và duy trì tính nhất quán về tốc

độ, tính năng của một hệ thống, một dịch vụ với yêu cầu, thiết kế và các thông tinvận hành xuyên suốt vòng đời của nó

Việc quản lý cấu hình thường thực hiện qua quá trình xây dựng trước mẫucho các chương trình cần quản lý và khi sử dụng thì ta chỉ cần thêm thông số phùhợp Các máy chủ sẽ tải cấu hình dành cho mình về và thực thi các công việc càiđặt, cấu hình để đạt được một trạng thái định trước Một số chương trình có hỗ trợchức năng để đảm bảo máy chủ luôn có một cấu hình như đã định trước ngay cả khicấu hình máy chủ đó đã bị người dùng thay đổi thủ công…

Quản lý cấu hình được áp dụng trong vòng đời của một hệ thống cung cấpkhả năng hiển thị và kiểm soát hiệu suất, chức năng và các thuộc tính vật lý của nó.Quá trình quản lý cấu hình tạo điều kiện thuận lợi cho việc quản lý có trật tự thôngtin hệ thống và các thay đổi của hệ thống cho các mục đích có lợi như sửa đổi khả

[15]

Trang 17

năng, cải thiện hiệu suất, độ tin cậy hoặc khả năng bảo trì, kéo dài tuổi thọ, giảmchi phí, giảm rủi ro và trách nhiệm pháp lý, sửa chữa các khiếm khuyết Chi phíthực hiện quản lý cấu hình tương đối thấp Việc thiếu quản lý cấu hình, hoặc triểnkhai không hiệu quả, có thể rất tốn kém và đôi khi có thể gây ra những thiệt hạinhư hỏng hóc thiết bị.

Quản lý cấu hình nhấn mạnh mối quan hệ chức năng giữa các bộ phận, hệthống và hệ thống con để kiểm soát hiệu quả sự thay đổi của toàn bộ hệ thống Nógiúp xác minh rằng các thay đổi được đề xuất được xem xét một cách có hệ thống,giúp giảm thiểu các tác động bất lợi Các thay đổi đối với hệ thống được đề xuất,đánh giá và thực hiện bằng cách tiếp cận hệ thống đã được tiêu chuẩn hóa nhằmđảm bảo tính nhất quán và các thay đổi được đề xuất có thể đánh giá về tác động dựkiến của chúng đối với toàn bộ hệ thống Quản lý cấu hình cũng xác minh rằng cácthay đổi được thực hiện theo quy định và tài liệu về các hạng mục và hệ thống phảnánh cấu hình thực của chúng

1.2.2 Lợi ích của quản lý cấu hình

Quản lý cấu hình đem lại nhiều lợi ích cho người quản trị viên:

 Giúp thực hiện công việc triển khai hệ thống đơn giản và thuận tiện

 Hạn chế những công đoạn lặp lại, tiết kiệm thời gian

 Có thể sử dụng lại cho những hệ thống tương tự

 Linh hoạt, mềm dẻo trong quản lý

1.2.3 Các tiêu chí đánh giá một hệ thống quản lý cấu hình

 Tính đơn giản: Đối tượng sử dụng các hệ thống quản lý cấu hình chủ yếu là các

nhà quản trị và vận hành hệ thống Vì thế nên tính đơn giản là một trong nhữngtiêu chí hàng đầu khi đánh giá Những chương trình sử dụng các loại ngôn ngữphức tạp để viết file cấu hình có thể gây khó khăn cho việc sử dụng của ngườidùng

 Tính linh hoạt: Một mẫu cấu hình cần có khả năng áp dụng cho nhiều máy

khác nhau, với những thay đổi tùy thuộc theo các thông số của từng máy

[16]

Trang 18

 Khả năng mở rộng tính năng: Nhu cầu dễ dàng thêm các thành phần của bên

thứ ba vào một chương trình quản lý cấu hình là cần thiết Điều này sẽ giúp cácnhà phát triển dễ dàng thêm các thành phần của họ, đồng thời giúp chương trình

có thể sử dụng ở một môi trường chuyên biệt mà không đòi hỏi thay đổi mãnguồn chương trình

 Khả năng mở rộng hệ thống: Với những hệ thống lớn, mô hình của chương

trình quản lý cấu hình sử dụng ảnh hưởng lớn tới khả năng mở rộng của nó.Chẳng hạn như một chương trình sử dụng mô hình máy chủ - máy khách chỉ vớimột máy chủ duy nhất có thể dẫn đến quá tải và không thể mở rộng hệ thống

1.2.4 Các thủ tục triển khai quản lý cấu hình

Hình 1.2 Các thủ tục triển khai Configuration Management

 Dentification (Nhận biết): Hành động đầu tiên đối với quản lý cấu hình là thu

thập thông tin Dữ liệu cấu hình phải được tổng hợp và biên dịch từ các môitrường ứng dụng khác nhau, phát triển, sắp xếp và sử dụng cho tất cả các thànhphần và dịch vụ đang được sử dụng Bất kỳ dữ liệu bí mật nào như mật khẩu vàkhóa phải được xác thực, mã hóa và lưu trữ an toàn Đồng thời, dữ liệu cấu hìnhnên được tổ chức thành các tệp dữ liệu

 Baseline (Đường cơ sở): Sau khi dữ liệu cấu hình đã được tổng hợp và sắp xếp,

một baseline có thể được thiết lập Cấu hình cơ sở là trạng thái cấu hình sẽ vậnhành thành công phần mềm mà không bị lỗi

 Version Control (Kiểm soát phiên bản): Dự án phát triển của chúng ta nên sử

dụng hệ thống kiểm soát phiên bản Nếu chưa có hệ thống kiểm soát phiên bản,

ta nên cài đặt Git, khởi tạo kho lưu trữ cho dự án và thêm tệp dữ liệu cấu hình

[17]

Trang 19

vào kho lưu trữ Lưu ý trước khi thêm dữ liệu cấu hình vào kho lưu trữ là hãyđảm bảo rằng mọi dữ liệu bí mật như mật khẩu hoặc khóa đều được mã hóabằng khóa ngoài Dữ liệu bí mật chưa mã hoá vô tình được đưa vào một kho lưutrữ thì khá nguy hiểm và nó cần được xóa khỏi lịch sử kho lưu trữ, nếu không

dữ liệu đó sẽ có nguy cơ bị khai thác

 Auditing (Kiểm toán): Việc tổ chức dữ liệu cấu hình và thêm vào kho lưu trữ

cho phép truy cập và hiển thị cấu hình của hệ thống Bất kỳ thay đổi nào được

áp dụng cho cấu hình phải được hệ thống kiểm toán xem xét và chấp nhận Điềunày bổ sung trách nhiệm giải trình và khả năng hiển thị đối với các thay đổi cấuhình

1.3 Tự động hoá mạng

1.3.1 Khái niệm

Tự động hóa mạng là quá trình tự động hóa việc cấu hình, quản lý, kiểm

tra, triển khai và vận hành các thiết bị vật lý và ảo trong cùng một mạng Với cácnhiệm vụ và chức năng mạng hàng ngày, các quy trình tự động lặp đi lặp lại đượckiểm soát và quản lý tự động, tính khả dụng của dịch vụ mạng được cải thiện.Bất kỳ loại mạng nào cũng có thể sử dụng tự động hóa mạng Các giải phápdựa trên phần cứng và phần mềm cho phép các trung tâm dữ liệu, nhà cung cấp dịch

vụ và doanh nghiệp thực hiện tự động hóa mạng để nâng cao hiệu quả, giảm lỗi docon người và giảm chi phí vận hành

Các bộ phận công nghệ thông tin ngày nay luôn tìm kiếm tốc độ, sự nhanhnhẹn và tính nhất quán trong việc cung cấp và quản lý cả các ứng dụng gốc truyềnthống và đám mây Một nền tảng tự động hóa mạng hiện đại có thể đạt được nhữngmục tiêu này bằng cách tự động hóa các chức năng mạng như cung cấp tài nguyên,lập bản đồ mạng và kiểm tra mạng

1.3.2 Lợi ích của tự động hóa mạng

Một trong những vấn đề lớn nhất đối với các nhà quản lý mạng là sự gia tăngchi phí CNTT cho các hoạt động mạng Sự phát triển của dữ liệu và thiết bị đangbắt đầu vượt xa khả năng CNTT, khiến các phương pháp tiếp cận thủ công gần như

[18]

Trang 20

không thể thực hiện được Tuy nhiên, có tới 95% thay đổi mạng được thực hiện thủcông, dẫn đến chi phí vận hành cao hơn chi phí của mạng từ 2 đến 3 lần Tự độnghóa CNTT ngày càng phát triển, được quản lý tập trung và từ xa là điều cần thiếtcho các doanh nghiệp để bắt kịp thế giới kỹ thuật số.

Tự động hóa mạng cho phép người dùng tăng tốc độ triển khai ứng dụngbằng cách tự động hóa việc cung cấp và quản lý mạng và bảo mật thông qua cácvòng đời ứng dụng hoàn chỉnh và trên các môi trường trung tâm dữ liệu và đámmây

1.3.3 Một số chức năng của tự động hoá mạng

 Triển khai một thiết bị mới hoàn toàn tự động: Một thiết bị mới chỉ cần kết

nối là tự động tham gia vào hạ tầng mạng và hoạt động như các node khác Tínhnăng này giúp các thiết bị mới hoạt động với rất ít công sức Một cấu hình đầy

đủ hoặc một phần sẽ được đẩy xuống thiết bị Sau khi thiết bị đã hoạt động thìcác công việc thay đổi, giám sát, tối ưu đều trở nên dễ dàng hơn

 Quản lý phần mềm chạy trên thiết bị: Ví dụ như để kiểm tra và đảm bảo

khoảng 800 - 1000 thiết bị có cùng một phiên bản hệ điều hành thì tự động hóamạng sẽ làm tốt hơn con người

 Kiểm tra tính tương thích: Tự động hóa mạng có khả năng độc đáo và duy

nhất để audit một số lượng lớn các thiết bị xem có bị lỗi trong cấu hình haykhông Tự động hóa mạng cũng sẽ tự động thực thi các điều chỉnh phù hợp bằngcác cơ chế kiểm định bên trong

 Tạo ra các báo cáo: Để trích xuất và tổng hợp các thông tin từ các nguồn thiết

bị khác nhau thì tự động hóa mạng sẽ giúp ích rất nhiều Các thông tin có thểđược tổng hợp để trở nên hữu ích và con người có thể đọc được

 Khắc phục sự cố: Tự động hóa mạng giúp cho quá trình khắc phục sự cố trở

nên dễ dàng hơn bằng cách phân tích các cấu hình hiện tại và các lỗi đang xảy ra

ở thời gian thực một cách đồng thời trên nhiều thiết bị

 Thu thập dữ liệu và chẩn đoán từ xa: Tự động hóa mạng sẽ tận dụng các API

để thu thập thông tin về các tiến trình hoạt động và cho phép tích hợp dễ dàngvới các ứng dụng quản lý bên trên

[19]

Trang 21

1.4 Một số công cụ quản lý cấu hình phổ biến

1.4.1 Ansible

Ansible là một trong những công cụ quản lý cấu hình hiện đại, nó tạo điều kiệnthuận lợi cho công việc cài đặt, quản lý và bảo trì các server từ xa, với thiết kế tốigiản giúp người dùng cài đặt và chạy nhanh chóng

Trọng tâm của Ansible là sắp xếp hợp lý và nhanh chóng, và không yêu cầu càiđặt agent node Các chức năng Ansible được thực hiện qua SSH Ansible được xâydựng bằng Python, còn Puppet và Chef được xây dựng bằng Ruby

Người dùng viết các tập lệnh cấp phép Ansible trong YAML, một tiêu chuẩntuần tự hóa dữ liệu thân thiện với người dùng, chúng không bị ràng buộc với bất kỳngôn ngữ lập trình nào Chính vì vậy người dùng có thể tạo ra các tập lệnh cấp phép

phức tạp một cách trực quan hơn so với các công cụ còn lại trong cùng danh mục

Để sử dụng Ansible (www.ansible.com), chúng ta cần cài đặt Ansible trên một

số máy tính: Mac, Linux hoặc Linux VM trên máy chủ Windows Ta cũng có thể sửdụng phiên bản nguồn mở miễn phí như Ansible AWX hoặc sử dụng phiên bảnmáy chủ Ansible Tower có trả phí

1.4.2 Puppet

Puppet là một công cụ quản lý cấu hình mã nguồn mở viết bằng Ruby, được

sử dụng để quản lý cấu hình máy chủ và tự động hóa hệ thống trong các trung tâm

dữ liệu của Google, Twitter, thị trường chứng khoán New York, và nhiều doanhnghiệp lớn khác Puppet được phát triển đầu tiên bởi Puppet Labs, và hiện tạiPuppet Labs cũng là người duy trì chính của dự án này Puppet có thể dùng để quản

lý từ vài máy chủ cho tới hơn chục nghìn máy chủ, cùng với đó là đội quản trị hệthống từ một người tới hàng trăm người

Puppet là một công cụ để quản lý cấu hình và bảo trì hệ thống máy tính.Ngôn ngữ cấu hình của Pupper khá đơn giản Chúng ta chỉ cần chỉ cho Puppet thấychúng ta muốn cấu hình máy tính của chúng ta như thế nào, nó sẽ thực hiện đúngnhững gì chúng ta muốn Khi hệ thống có sự thay đổi, chẳng hạn như một phiên bảncập nhật của gói phần mềm, thêm người dùng mới hay một cấu hình nào đó thay

[20]

Trang 22

đổi, Puppet sẽ tự động cập nhật tất cả các máy chủ trong hệ thống đúng như cấuhình chúng ta muốn.

Sự khác biệt giữa cách tiếp cận Ansible và Puppet, đó là Playbooks Ansible

sử dụng một ngôn ngữ bắt buộc, trong khi Puppet sử dụng ngôn ngữ khai báo.Chẳng hạn, với Ansible, playbook sẽ liệt kê các tác vụ và lựa chọn dựa trên các kếtquả đó, như xác định cấu hình tất cả các Router nhánh ở những vị trí này và nếu xảy

ra lỗi cho bất kỳ thiết bị nào, hãy thực hiện các tác vụ bổ sung này cho thiết bị đó.Puppet thường sử dụng kiến trúc dựa trên agent để hỗ trợ thiết bị mạng Một sốthiết bị mạng cho phép hỗ trợ Puppet thông qua một agent trên thiết bị Tuy nhiên,không phải mọi hệ điều hành của Cisco đều hỗ trợ các agent, vì vậy Puppet giảiquyết vấn đề đó bằng cách sử dụng một agent proxy chạy trên một số máy chủ bênngoài (được gọi là hoạt động không có tác nhân)

Trên trang web Puppet, Puppet hỗ trợ cả kiến trúc dựa trên tác nhân vàkhông có tác nhân, với kiến trúc không có tác nhân là trường hợp sử dụng một tácnhân bên ngoài cho thiết bị mạng

1.4.3 Chef

Chef (www.chef.io), giống như với Ansible và Puppet, tồn tại dưới dạng cácgói phần mềm Chef (công ty) cung cấp một số sản phẩm, với Chef Automate là sảnphẩm mà hầu hết mọi người gọi đơn giản là Chef Như với Puppet, trong hệ thốngmạng, người dùng có thể chạy Chef dưới dạng máy chủ (được gọi là chế độ client-server), với nhiều máy trạm Chef được nhân viên kỹ thuật sử dụng để xây dựng cáctệp Chef được lưu trữ trên máy chủ Chef Tuy nhiên người dùng cũng có thể chạyChef ở chế độ độc lập (được gọi là Chef Zero), rất hữu ích cho người mới bắt đầu

và học trong phòng lab

Cấu hình của Chef xoay quanh Git, vì vậy kiến thức về cách Git hoạt động làmột điều kiện tiên quyết cho hoạt động Chef Như Puppet, Chef được dựa trênRuby, vì vậy kiến thức của Ruby cũng được yêu cầu Modules có thể được tải vềhoặc viết từ đầu, và triển khai tới các nút quản lý cấu hình

Chef sử dụng một kiến trúc tương tự như Puppet Đối với các thiết bị mạng, mỗithiết bị được quản lý (được gọi là nút Chef hoặc Chef client) chạy một tác nhân

[21]

Trang 23

agent Tác nhân thực hiện giám sát cấu hình trong đó client lấy các công thức và tàinguyên từ máy chủ Chef và sau đó điều chỉnh cấu hình của nó để đồng bộ Tuynhiên, không giống như Puppet, Chef chưa có một tính năng push tốt Điều này cónghĩa rằng các nhân viên sẽ cần phải được cấu hình để kiểm tra với chủ định kỳ, vàứng dụng ngay lập tức các thay đổi là không thực sự tốt.

[22]

Trang 24

CHƯƠNG 2 NGHIÊN CỨU VỀ CÔNG CỤ QUẢN LÝ CẤU

HÌNH ANSIBLE2.1 Tìm hiểu về Ansible và các thành phần cơ bản: SSH, YAML

2.1.1 Sơ lược về SSH

2.1.1.1 Khái niệm

SSH là một giao thức điều khiển từ xa cho phép người dùng kiểm soát vàchỉnh sửa server từ xa qua Internet Dịch vụ này được tạo ra nhằm thay thế chotrình Telnet vốn không có mã hóa và sử dụng kỹ thuật cryptographic để đảm bảo tất

cả giao tiếp gửi tới và gửi từ server từ xa diễn ra trong tình trạng mã hóa Nó cungcấp thuật toán để chứng thực người dùng từ xa, chuyển input từ client tới host, vàrelay kết quả trả về tới khách hàng

2.1.1.2 Lịch sử phát triển

SSH được phát triển tại Đại học Công nghệ Helsinki năm 1995 bởi TatuYlönen nhằm đáp trả cuộc tấn công đánh hơi bằng mật khẩu trên mạng lưới trườngđại học Nó nhằm mục đích cung cấp một sự thay thế cho các giao thức như FTP,TELNET, rsh và rlogin, không đảm bảo tính bảo mật hoặc xác thực người dùng mộtcách an toàn

SSH được phát hành miễn phí cho công chúng vào năm 1995 và được đónnhận Trong khi SSH được áp dụng nhanh chóng, Ylönen đã thành lập SSHCommunications Security vào cuối năm đó để tiếp tục phát triển và thương mại hóaSSH

Năm 1995, Ylönen cũng xuất bản Dự thảo Internet của Lực lượng đặc nhiệm

kỹ thuật Internet (IETF) ghi lại giao thức SSH-1 Những hạn chế đã sớm được tìmthấy trong giao thức, và những điều này không thể được giải quyết mà không ảnhhưởng đến khả năng tương thích ngược Giải pháp là một phiên bản mới của giaothức và SSH-2 được ra mắt bởi công ty Ylönen vào năm 1996

[23]

Trang 25

SSH-2 nổi bật với các thuật toán mới, khiến IETF tìm thấy một nhóm làmviệc nhằm chuẩn hóa giao thức Nhóm có biệt danh là SECSH, vì Giâyure Shell và

nó đã xuất bản Dự thảo Internet đầu tiên cho SSH-2 vào năm 1997

Phần mềm cho SSH-2 được phát hành vào năm 1998, nhưng nó đã ngay lậptức được áp dụng một cách phổ biến vì cấp phép hạn chế hơn Năm 2006, IETF đãtạo ra một phiên bản thay đổi của giao thức Điều này an toàn hơn, sử dụng mã xácthực tin nhắn để kiểm tra tính toàn vẹn và trao đổi khóa Diffie-Hellman để xác thực.Năm 1999, dự án OpenBSD đã phát hành OpenSSH OpenSSH là phiên bảnmiễn phí của giao thức đó là dựa trên những sửa đổi mà Bjorn Grönvall đã thựchiện cho SSH 1.1.12 Các nhà phát triển đã quay lại phiên bản cũ hơn và thay đổi

nó rất nhiều, vì đây là phiên bản cuối cùng của SSH hoàn toàn là nguồn mở.OpenSSH hiện là tùy chọn được sử dụng rộng rãi nhất và nó đã được triển khaitrong một loạt các hệ điều hành, như Windows, macOS, Linux, Solaris và các hệthống khác

2.1.1.3 Cách thức hoạt động của SSH

SSH làm việc thông qua 3 bước đơn giản:

 Bước 1 Định danh host:

Việc định danh host được thực hiện qua việc trao đổi khoá Mỗi máy tính có

hỗ trợ kiểu truyền thông SSH có một khoá định danh duy nhất Khoá này gồm haithành phần: khoá riêng (Private key) và khoá công cộng (Public key) Khoá côngcộng được sử dụng khi cần trao đổi giữa các máy chủ với nhau trong phiên làm việcSSH, dữ liệu sẽ được mã hoá bằng khoá riêng và chỉ có thể giải mã bằng khoá côngkhai Khi có sự thay đổi về cấu hình trên máy chủ: thay đổi chương trình SSH, thayđổi cơ bản trong hệ điều hành, khoá định danh cũng sẽ thay đổi Khi đó mọi người

sử dụng SSH để đăng nhập vào máy chủ này đều được cảnh báo về sự thay đổi này.Khi hai hệ thống bắt đầu một phiên làm việc SSH, máy chủ sẽ gửi khoá công cộngcủa nó cho máy khách Máy khách sinh ra một khoá phiên ngẫu nhiên và mã hoákhoá này bằng khoá công cộng của máy chủ, sau đó gửi lại cho máy chủ Máy chủ

sẽ giải mã khoá phiên này bằng khoá riêng của mình và nhận được khoá phiên

[24]

Trang 26

Khoá phiên này sẽ là khoá sử dụng để trao đổi dữ liệu giữa hai máy Quá trình nàyđược xem như các bước nhận diện máy chủ và máy khách.

 Bước 2 Mã hoá

Sau khi hoàn tất việc thiết lập phiên làm việc bảo mật (trao đổi khoá, địnhdanh), quá trình trao đổi dữ liệu diễn ra thông qua một bước trung gian đó là mãhoá/giải mã Điều đó có nghĩa là dữ liệu gửi/nhận trên đường truyền đều được mãhoá và giải mã theo cơ chế đã thoả thuận trước giữa máy chủ và máy khách Việclựa chọn cơ chế mã hoá thường do máy khách quyết định Các cơ chế mã hoáthường được chọn bao gồm: 3DES, IDEA, và Blowfish Khi cơ chế mã hoá đượclựa chọn, máy chủ và máy khách trao đổi khoá mã hoá cho nhau Việc trao đổi nàycũng được bảo mật dựa trên đinh danh bí mật của các máy Kẻ tấn công khó có thểnghe trộm thông tin trao đổi trên đường truyền vì không biết được khoá mã hoá.Các thuật toán mã hoá khác nhau và các ưu, nhược điểm của từng loại:

 3DES (cũng được biết như Triple-DES) - phương pháp mã hoá mặc định choSSH

 IDEA - Nhanh hơn 3DES, nhưng chậm hơn Arcfour và Blowfish

 Arcfour - Nhanh, nhưng các vấn đề bảo mật đã được phát hiện

 Blowfish - Nhanh và bảo mật, nhưng các phương pháp mã hoá đang đượccải tiến

 Bước 3 Chứng thực:

Việc chứng thực là bước cuối cùng trong ba bước, và là bước đa dạng nhất.Tại thời điểm này, kênh trao đổi bản thân nó đã được bảo mật Mỗi định danh vàtruy nhập của người sử dụng có thể được cung cấp theo rất nhiều cách khác nhau.Chẳng hạn, kiểu chứng thực rhosts có thể được sử dụng, nhưng không phải là mặcđịnh; nó đơn giản chỉ kiểm tra định danh của máy khách được liệt kê trong filerhost (theo DNS và địa chỉ IP) Việc chứng thực mật khẩu là một cách rất thôngdụng để định danh người sử dụng, nhưng ngoài ra cũng có các cách khác: chứngthực RSA, sử dụng ssh-keygen và ssh-agent để chứng thực các cặp khoá

[25]

Trang 27

2.1.2 Sơ lược về YAML

2.1.2.1 Khái niệm:

YAML là một chuẩn dữ liệu kiểu serialization dành cho tất cả các ngôn ngữ.

Nó được sử dụng phổ biến để tạo ra các file config cho nhiều ứng dụng

2.1.2.2 Cú pháp:

Bảng 2 Cú pháp YAML2

Trang 28

“A double-quoted string”

2.1.3 Giới thiệu về Ansible

Hiện nay có rất nhiều tool automation để quản trị hệ thống trên thị trường, cụthể như: Chef, Puppet, CFEngine, StackStorm, Ansible, SaltStack… So với cáccông cụ khác với tính năng tương đương thì Ansible dễ học và dễ tiếp cận hơn rấtnhiều Cộng đồng người dùng Ansible cũng nhiều hơn so với các công cụ khác

[27]

Trang 29

2.1.3.1 Khái niệm Ansible

Ansible là cơng cụ quản lý cấu hình, cho phép tự động hĩa cơng việc của

Sysadmin/devOps; là cơng cụ mã nguồn mở dùng để quản lý cài đặt, cấu hình hệthống một cách tập trung

Ansible sử dụng SSH (PowerShell) và các module được viết bằng Python đểđiều khiển hệ thống Cơng cụ này sử dụng YAML để xây dựng cấu trúc mơ tả hệthống và sử dụng định dạng JSON để hiện thị thơng tin

2.1.3.2 Lịch sử phát triển Ansible

Cơng cụ Ansible được phát triển bởi Michael DeHaan, tác giả của ứng dụngmáy chủ cung cấp Cobbler và đồng tác giả của khuơn khổ Fedora Unified NetworkController (Func) để quản trị từ xa

Ansible, Inc (ban đầu là AnsibleWorks, Inc.) là cơng ty được thành lập vàonăm 2013 bởi Michael DeHaan, Timothy Gerla và Sạd Ziouani để hỗ trợ và tài trợcho Ansible về mặt thương mại

Red Hat mua lại Ansible vào tháng 10 năm 2015 Ansible được bao gồm nhưmột phần của bản phân phối Fedora của Linux, do Red Hat sở hữu và cũng cĩ sẵncho Red Hat Enterprise Linux, CentOS, openSUSE, SUSE Linux Enterprise,Debian, Ubuntu, Scientific Linux và Oracle Linux thơng qua Gĩi bổ sung dành choDoanh nghiệp Linux (EPEL), cũng như các hệ điều hành khác

2.1.3.3 Kiến trúc của Ansible

Ansible sử dụng kiến trúc agentless khơng cần đến agent để giao tiếp với cácmáy khác Cơ bản nhất là giao tiếp thơng qua các giao thức WinRM trên Windows,SSH trên Linux hoặc giao tiếp qua chính API của thiết bị đĩ cung cấp

Ansible cĩ thể giao tiếp với rất nhiều OS, platform và loại thiết bị khác nhau

từ Ubuntu, VMware, CentOS, Windows cho tới Azure, AWS, các thiết bị mạngCisco và Juniper… mà hồn tồn khơng cần agent khi giao tiếp

Nhờ vào cách thiết kế này đã giúp làm tăng tính tiện dụng của Ansible dokhơng cần phải cài đặt và bảo trì agent trên nhiều host Cĩ thể nĩi rằng đây chính là

[28]

Trang 30

một thế mạnh của Ansible so với các công cụ có cùng chức năng như Chef vàPuppet.

Bảng 2 So sánh cấu trúc giữa Ansible, Puppet và Chef:3

Thuật ngữ cho tệp liệt kê

Recipe,Runlist

Giao thức cho thiết bị mạng SSH,

NETCONF HTTP (REST) HTTP (REST)

Sử dụng mô hình agent hoặc

Cả ba trong số các công cụ quản lý cấu hình trên đều có một cơ sở ngườidùng tốt và các thế mạnh khác nhau Đối với việc sử dụng chúng để quản lý cấuhình thiết bị mạng, Ansible dường như được quan tâm nhất, sau đó là Puppet và sau

đó là Chef

2.1.3.4 Ưu điểm của Ansible:

- Clear: Ansible sử dụng cú pháp đơn giản (YAML) và dễ hiểu đối với bất kỳ ai

(developers, sysadmins, managers)

- Fast: Học nhanh, cài đặt nhanh chóng và không phải cài đặt phần mềm hay

daemon nào khác trên server của chúng ta

- Complete: Phương pháp tiếp cận batteries included của Ansible, chúng ta có mọi

thứ chúng ta cần trong một package hoàn chỉnh

- Efficient: Việc không có phần mềm bổ sung trên máy chủ của chúng ta sẽ giúp

chúng ta tiết kiệm tài nguyên và dành nhiều tài nguyên hơn cho các ứng dụng.Ngoài ra, vì các modules của Ansible hoạt động thông qua JSON, Ansible có thể

mở rộng với các modules được viết bằng ngôn ngữ lập trình mà chúng ta đã biết

- Secure: Ansible sử dụng SSH và không yêu cầu thêm mở port hoặc daemon nên

tránh bị truy cập vào máy chủ của bạn qua port hay daemon

[29]

Trang 31

- Ansible nhẹ và nhất quán, không có bất kỳ ràng buộc nào liên quan đến hệ điềuhành hay phần cứng cơ bản nào

2.1.3.5 Một số thuật ngữ cơ bản khi sử dụng Ansible:

Management Node: Là nơi ansible được cài đặt và từ đó tất cả các tasks và

playbooks sẽ được chạy

Inventory: Là file chứa thông tin các server cần quản lý File này thường nằm

tại đường dẫn /etc/ansible/hosts

Playbook: Là file chứa các task của Ansible được ghi dưới định dạng YAML

Máy controller (Ansible server) sẽ đọc các task trong Playbook và đẩy các lệnh thực thi tương ứng bằng Python xuống các máy con Ví dụ 1 playbook có thể chứa 2 task là: yum update và yum install vim

Task: Một block ghi tác vụ cần thực hiện trong playbook và các thông số liên

quan

Module: Một Module sẽ trừu tượng hóa một tác vụ hệ thống Ansible cũng cấp

sẵn rất nhiều Module tích hợp để chúng ta sử dụng nhưng nếu muốn, người dùng cũng có thể tự tạo Module Nói một cách dễ hiểu, người dùng sẽ giao tiếp với Ansible thông qua các Module

Role: Một tập hợp các Playbook, các template và các file khác, được tổ chức

theo cách được xác định trước để tạo điều kiện tái sử dụng và chia sẻ

Play: Là kịch bản thực thi của 1 playbook.

Facts: Các biến toàn cục chứa các thông tin về hệ thống, như các network

interface hay operating system

Handlers: Sử dụng để kích hoạt thay đổi trạng thái các service, như việc ta

restart hay reload một service

Template: Là file mẫu - là các file chưa hoàn thiện, còn thiếu phần giá trị của

các biến trong đó, khi thực thi ansible sẽ được hoàn thiện

2.1.3.6 Cách thức hoạt động của Ansible

Giống như đa phần các phần mềm quản lý cấu hình tập trung khác Ansible

có 2 loại server là Management Node (hay còn gọi là Control Machine) và Node

[30]

Ngày đăng: 25/04/2024, 16:15

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Mô hình Manager/Agent của hệ thống quản trị mạng - tìm hiểu và triển khai hệ thống quản lý cấu hình sử dụng ansible
Hình 1.1. Mô hình Manager/Agent của hệ thống quản trị mạng (Trang 13)
Bảng 1. . So sánh giữa Workgroup và Domain 1 - tìm hiểu và triển khai hệ thống quản lý cấu hình sử dụng ansible
Bảng 1. So sánh giữa Workgroup và Domain 1 (Trang 15)
Hình 1.2. Các thủ tục triển khai Configuration Management - tìm hiểu và triển khai hệ thống quản lý cấu hình sử dụng ansible
Hình 1.2. Các thủ tục triển khai Configuration Management (Trang 18)
Bảng 2. . So sánh cấu trúc giữa Ansible, Puppet và Chef: 3 - tìm hiểu và triển khai hệ thống quản lý cấu hình sử dụng ansible
Bảng 2. So sánh cấu trúc giữa Ansible, Puppet và Chef: 3 (Trang 30)
Hình 2.1. Cách thức hoạt động của Ansible - tìm hiểu và triển khai hệ thống quản lý cấu hình sử dụng ansible
Hình 2.1. Cách thức hoạt động của Ansible (Trang 32)
Bảng 2. . Chức năng các tham số inventory 4 - tìm hiểu và triển khai hệ thống quản lý cấu hình sử dụng ansible
Bảng 2. Chức năng các tham số inventory 4 (Trang 43)
Hình 3.2. Mô hình triển khai hệ thống quản lý cấu hình sử dụng Ansible Trong thực tế Ansible hoạt động rất mạnh mẽ, giúp ích rất nhiều trong việc quản lý, nhưng do cơ sở hạ tầng hạn chế, nên hệ thống thử nghiệm chỉ thực hiện những cấu hình cơ bản trên các - tìm hiểu và triển khai hệ thống quản lý cấu hình sử dụng ansible
Hình 3.2. Mô hình triển khai hệ thống quản lý cấu hình sử dụng Ansible Trong thực tế Ansible hoạt động rất mạnh mẽ, giúp ích rất nhiều trong việc quản lý, nhưng do cơ sở hạ tầng hạn chế, nên hệ thống thử nghiệm chỉ thực hiện những cấu hình cơ bản trên các (Trang 47)
Hình 3.2. Kết quả của lệnh kiểm tra phiên bản Ansible - tìm hiểu và triển khai hệ thống quản lý cấu hình sử dụng ansible
Hình 3.2. Kết quả của lệnh kiểm tra phiên bản Ansible (Trang 48)
Hình 3.3. Kết quả của quá trình tạo khóa SSH - tìm hiểu và triển khai hệ thống quản lý cấu hình sử dụng ansible
Hình 3.3. Kết quả của quá trình tạo khóa SSH (Trang 50)
Hình 3.5. Khai báo Inventory Trong đó: - tìm hiểu và triển khai hệ thống quản lý cấu hình sử dụng ansible
Hình 3.5. Khai báo Inventory Trong đó: (Trang 51)
Hình 3.6. Kết quả thực hiện Ping đến các thiết bị Cisco - tìm hiểu và triển khai hệ thống quản lý cấu hình sử dụng ansible
Hình 3.6. Kết quả thực hiện Ping đến các thiết bị Cisco (Trang 52)
Hình 3.8. Kết quả sau khi thực thi Playbook SW2_3.yml - tìm hiểu và triển khai hệ thống quản lý cấu hình sử dụng ansible
Hình 3.8. Kết quả sau khi thực thi Playbook SW2_3.yml (Trang 56)
Hình 3.7. Liệt kê các file .yml đã tạo - tìm hiểu và triển khai hệ thống quản lý cấu hình sử dụng ansible
Hình 3.7. Liệt kê các file .yml đã tạo (Trang 56)
Hình 3.10. Kết quả sử dụng lệnh kiểm tra dung lượng RAM trên Clien1 - tìm hiểu và triển khai hệ thống quản lý cấu hình sử dụng ansible
Hình 3.10. Kết quả sử dụng lệnh kiểm tra dung lượng RAM trên Clien1 (Trang 57)
Hình 3.9. Kết quả lệnh ping đến Client1 đã thành công - tìm hiểu và triển khai hệ thống quản lý cấu hình sử dụng ansible
Hình 3.9. Kết quả lệnh ping đến Client1 đã thành công (Trang 57)
Hình 3.13. Kết quả sử dụng lệnh cài đặt Python trên PC - tìm hiểu và triển khai hệ thống quản lý cấu hình sử dụng ansible
Hình 3.13. Kết quả sử dụng lệnh cài đặt Python trên PC (Trang 58)
Hình 3.15. Kết quả sau khi chạy thành công playbook 1 - Ta thực hiện thêm lệnh  ansible PC -m shell -a "which nmap; which - tìm hiểu và triển khai hệ thống quản lý cấu hình sử dụng ansible
Hình 3.15. Kết quả sau khi chạy thành công playbook 1 - Ta thực hiện thêm lệnh ansible PC -m shell -a "which nmap; which (Trang 59)
Hình 3.17. Nội dung file index.html - tìm hiểu và triển khai hệ thống quản lý cấu hình sử dụng ansible
Hình 3.17. Nội dung file index.html (Trang 60)
Hình 3.16. Kết quả sử dụng lệnh kiểm tra các gói đã được cài đặt - tìm hiểu và triển khai hệ thống quản lý cấu hình sử dụng ansible
Hình 3.16. Kết quả sử dụng lệnh kiểm tra các gói đã được cài đặt (Trang 60)
Hình 3.18. Kết quả tại node Client 1 sau khi chạy playbook 2 - tìm hiểu và triển khai hệ thống quản lý cấu hình sử dụng ansible
Hình 3.18. Kết quả tại node Client 1 sau khi chạy playbook 2 (Trang 61)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w