Sử dụng plugin kiểm kê từ Bộ sưu tập nội dung Ansible trong Tháp Ansible

Môi trường CNTT ngày càng trở nên phức tạp hơn. Trong những điều kiện này, điều quan trọng là hệ thống tự động hóa CNTT phải có thông tin cập nhật về các nút có trong mạng và được xử lý. Trong Nền tảng tự động hóa Ansible của Red Hat, vấn đề này được giải quyết thông qua cái gọi là kho lưu trữ (hàng tồn kho) – danh sách các nút được quản lý.

Sử dụng plugin kiểm kê từ Bộ sưu tập nội dung Ansible trong Tháp Ansible

Ở dạng đơn giản nhất, hàng tồn kho là một tệp tĩnh. Điều này lý tưởng khi bạn bắt đầu làm việc với Ansible, nhưng khi tính tự động hóa tăng lên, nó sẽ trở nên không đủ.

Và đây là lý do tại sao:

  1. Làm cách nào để cập nhật và duy trì danh sách đầy đủ các nút được giám sát khi mọi thứ liên tục thay đổi, khi khối lượng công việc—và sau đó là các nút mà chúng chạy trên đó—đến rồi đi?
  2. Làm cách nào để phân loại các thành phần của cơ sở hạ tầng CNTT để chọn cụ thể các nút để áp dụng tự động hóa cụ thể?

Khoảng không quảng cáo động cung cấp câu trả lời cho cả hai câu hỏi này (khoảng không quảng cáo động) – một tập lệnh hoặc plugin tìm kiếm các nút được tự động hóa, đề cập đến nguồn sự thật. Ngoài ra, khoảng không quảng cáo động sẽ tự động phân loại các nút thành các nhóm để bạn có thể chọn chính xác hơn các hệ thống mục tiêu nhằm thực hiện tự động hóa Ansible cụ thể.

Plugin kiểm kê cung cấp cho người dùng Ansible khả năng truy cập vào các nền tảng bên ngoài để tự động tìm kiếm các nút mục tiêu và sử dụng các nền tảng này làm nguồn thông tin chính xác khi tạo khoảng không quảng cáo. Danh sách nguồn tiêu chuẩn trong Ansible bao gồm các nền tảng đám mây AWS EC2, Google GCP và Microsoft Azure, đồng thời cũng có nhiều plugin kiểm kê khác cho Ansible.

Tháp Ansible đi kèm với một số plugin kiểm kê, hoạt động ngay lập tức và ngoài các nền tảng đám mây được liệt kê ở trên, còn cung cấp khả năng tích hợp với VMware vCenter, Red Hat OpenStack Platform và Red Hat Satellite. Đối với các plugin này, bạn chỉ cần cung cấp thông tin xác thực để kết nối với nền tảng mục tiêu, sau đó chúng có thể được sử dụng làm nguồn dữ liệu hàng tồn kho trong Ansible Tower.

Ngoài các plugin tiêu chuẩn đi kèm với Ansible Tower, còn có các plugin kiểm kê khác được cộng đồng Ansible hỗ trợ. Với sự chuyển đổi sang Bộ sưu tập nội dung Ansible của Red Hat các plugin này bắt đầu được đưa vào các bộ sưu tập tương ứng.

Trong bài đăng này, chúng tôi sẽ lấy ví dụ về cách làm việc với plugin kiểm kê cho ServiceNow, một nền tảng quản lý dịch vụ CNTT phổ biến trong đó khách hàng thường lưu trữ thông tin về tất cả các thiết bị của họ trong CMDB. Ngoài ra, CMDB có thể chứa ngữ cảnh hữu ích cho việc tự động hóa, chẳng hạn như thông tin về chủ sở hữu máy chủ, cấp độ dịch vụ (sản xuất/không sản xuất), các bản cập nhật đã cài đặt và cửa sổ bảo trì. Plugin kiểm kê Ansible có thể hoạt động với ServiceNow CMDB và là một phần của bộ sưu tập phục vụ trên cổng galaxy.ansible.com.

Kho Git

Để sử dụng plugin kiểm kê từ bộ sưu tập trong Ansible Tower, plugin này phải được đặt làm nguồn dự án. Trong Ansible Tower, một dự án là sự tích hợp với một số loại hệ thống kiểm soát phiên bản, chẳng hạn như kho lưu trữ git, có thể được sử dụng để đồng bộ hóa không chỉ các sách hướng dẫn tự động hóa mà còn cả các biến và danh sách khoảng không quảng cáo.

Kho lưu trữ của chúng tôi thực sự rất đơn giản:

├── collections
│   └── requirements.yml
└── servicenow.yml

Tệp servicenow.yml chứa thông tin chi tiết về kho plugin. Trong trường hợp của chúng tôi, chúng tôi chỉ cần chỉ định bảng trong ServiceNow CMDB mà chúng tôi muốn sử dụng. Chúng tôi cũng đặt các trường sẽ được thêm dưới dạng biến nút, cùng với một số thông tin nhất định về các nhóm mà chúng tôi muốn tạo.

$ cat servicenow.yml
plugin: servicenow.servicenow.now
table: cmdb_ci_linux_server
fields: [ip_address,fqdn,host_name,sys_class_name,name,os]
keyed_groups:
  - key: sn_sys_class_name | lower
	prefix: ''
	separator: ''
  - key: sn_os | lower
	prefix: ''
	separator: ''

Xin lưu ý rằng điều này không chỉ định phiên bản ServiceNow mà chúng tôi sẽ kết nối theo bất kỳ cách nào và không chỉ định bất kỳ thông tin xác thực nào để kết nối. Chúng tôi sẽ định cấu hình tất cả những điều này sau trong Ansible Tower.

Bộ sưu tập tệp/requirements.yml cần thiết để Ansible Tower có thể tải xuống bộ sưu tập được yêu cầu và từ đó có được plugin kiểm kê cần thiết. Nếu không, chúng tôi sẽ phải cài đặt và duy trì bộ sưu tập này theo cách thủ công trên tất cả các nút Ansible Tower của mình.

$ cat collections/requirements.yml
---
collections:

- name: servicenow.servicenow

Khi chúng tôi đã đẩy cấu hình này sang kiểm soát phiên bản, chúng tôi có thể tạo một dự án trong Ansible Tower tham chiếu đến kho lưu trữ tương ứng. Ví dụ bên dưới liên kết Tháp Ansible với kho lưu trữ github của chúng tôi. Hãy chú ý đến URL SCM: nó cho phép bạn đăng ký tài khoản để kết nối với kho lưu trữ riêng tư, cũng như chỉ định một nhánh, thẻ hoặc cam kết cụ thể để kiểm tra.

Sử dụng plugin kiểm kê từ Bộ sưu tập nội dung Ansible trong Tháp Ansible

Tạo thông tin đăng nhập cho ServiceNow

Như đã đề cập, cấu hình trong kho lưu trữ của chúng tôi không chứa thông tin xác thực để kết nối với ServiceNow và không chỉ định phiên bản ServiceNow mà chúng tôi sẽ liên lạc. Do đó, để thiết lập dữ liệu này, chúng tôi sẽ tạo thông tin xác thực trong Ansible Tower. Dựa theo Tài liệu về plugin kiểm kê ServiceNow, có một số biến môi trường mà chúng ta sẽ đặt tham số kết nối, ví dụ như sau:

= username
    	The ServiceNow user account, it should have rights to read cmdb_ci_server (default), or table specified by SN_TABLE

    	set_via:
      	env:
      	- name: SN_USERNAME

Trong trường hợp này, nếu biến môi trường SN_USERNAME được đặt, plugin kiểm kê sẽ sử dụng biến môi trường đó làm tài khoản để kết nối với ServiceNow.

Chúng ta cũng cần đặt các biến SN_INSTANCE và SN_PASSWORD.

Tuy nhiên, không có thông tin xác thực nào thuộc loại này trong Ansible Tower nơi bạn có thể chỉ định dữ liệu này cho ServiceNow. Nhưng Ansible Tower cho phép chúng ta xác định các loại thông tin xác thực tùy chỉnh, bạn có thể đọc thêm về điều này trong bài viết "Tiêu điểm về tính năng của Tháp Ansible: Thông tin xác thực tùy chỉnh".

Trong trường hợp của chúng tôi, cấu hình đầu vào cho thông tin xác thực tùy chỉnh cho ServiceNow trông như thế này:

fields:
  - id: SN_USERNAME
	type: string
	label: Username
  - id: SN_PASSWORD
	type: string
	label: Password
	secret: true
  - id: SN_INSTANCE
	type: string
	label: Snow Instance
required:
  - SN_USERNAME
  - SN_PASSWORD
  - SN_INSTANCE

Những thông tin xác thực này sẽ được hiển thị dưới dạng các biến môi trường có cùng tên. Điều này được mô tả trong cấu hình kim phun:

env:
  SN_INSTANCE: '{{ SN_INSTANCE }}'
  SN_PASSWORD: '{{ SN_PASSWORD }}'
  SN_USERNAME: '{{ SN_USERNAME }}'

Vì vậy, chúng tôi đã xác định loại thông tin xác thực mà chúng tôi cần, bây giờ chúng tôi có thể thêm tài khoản ServiceNow và đặt phiên bản, tên người dùng và mật khẩu, như sau:

Sử dụng plugin kiểm kê từ Bộ sưu tập nội dung Ansible trong Tháp Ansible

Chúng tôi tạo ra hàng tồn kho

Vì vậy, bây giờ tất cả chúng ta đã sẵn sàng tạo kho đồ trong Ansible Tower. Hãy gọi nó là ServiceNow:

Sử dụng plugin kiểm kê từ Bộ sưu tập nội dung Ansible trong Tháp Ansible

Sau khi tạo khoảng không quảng cáo, chúng ta có thể đính kèm nguồn dữ liệu vào đó. Ở đây, chúng tôi chỉ định dự án mà chúng tôi đã tạo trước đó và nhập đường dẫn đến tệp kiểm kê YAML của chúng tôi trong kho lưu trữ kiểm soát nguồn, trong trường hợp của chúng tôi là servicenow.yml trong thư mục gốc của dự án. Ngoài ra, bạn cần liên kết tài khoản ServiceNow của mình.

Sử dụng plugin kiểm kê từ Bộ sưu tập nội dung Ansible trong Tháp Ansible

Để kiểm tra xem mọi thứ hoạt động như thế nào, hãy thử đồng bộ hóa với nguồn dữ liệu bằng cách nhấp vào nút “Đồng bộ hóa tất cả”. Nếu mọi thứ được định cấu hình chính xác thì các nút sẽ được nhập vào kho của chúng tôi:

Sử dụng plugin kiểm kê từ Bộ sưu tập nội dung Ansible trong Tháp Ansible

Xin lưu ý rằng các nhóm chúng tôi cần cũng đã được tạo.

Kết luận

Trong bài đăng này, chúng tôi đã xem xét cách sử dụng plugin kiểm kê từ các bộ sưu tập trong Ansible Tower bằng cách sử dụng plugin ServiceNow làm ví dụ. Chúng tôi cũng đã đăng ký thông tin xác thực một cách an toàn để kết nối với phiên bản ServiceNow của mình. Liên kết plugin kiểm kê từ một dự án không chỉ hoạt động với plugin tùy chỉnh hoặc của bên thứ ba mà còn có thể được sử dụng để sửa đổi hoạt động của một số kiểm kê tiêu chuẩn. Điều này giúp Nền tảng tự động hóa Ansible dễ dàng và liền mạch để tích hợp với các công cụ hiện có khi tự động hóa các môi trường CNTT ngày càng phức tạp.

Bạn có thể tìm thêm thông tin về các chủ đề được thảo luận trong bài đăng này, cũng như các khía cạnh khác của việc sử dụng Ansible tại đây:

*Red Hat không đảm bảo rằng mã trong tài liệu này là chính xác. Tất cả các tài liệu được cung cấp trên cơ sở không xác nhận trừ khi có quy định rõ ràng khác.

Nguồn: www.habr.com

Thêm một lời nhận xét