Tự động hóa quản trị Windows Server 2019 & Windows 10 với Ansible
Ansible là một công cụ tự động hóa CNTT đơn giản nhưng mạnh mẽ mà hàng nghìn công ty đang sử dụng để loại bỏ sự phức tạp ra khỏi môi trường của họ và đẩy nhanh các sáng kiến DevOps.
Có thể là việc triển khai các ứng dụng, bảo trì định kỳ máy chủ của bạn, Quản lý cấu hình, Phân phối liên tục, Điều phối hoặc bất kỳ công việc lặp đi lặp lại nào mà bạn có thể mô tả, Ansible có thể xử lý việc đó cho bạn.
Để chứng kiến các tính năng hàng đầu của nó, chúng tôi sẽ tận dụng nó để tự động hóa việc quản trị máy chủ Windows. Đây sẽ là một chuyến đi mạo hiểm nên hãy thắt dây an toàn khi chúng ta bắt đầu chuyến đi.
“Đừng chờ đợi. Thời gian sẽ không bao giờ vừa phải. ”
-Đồi Napoleon
Điều kiện tiên quyết
Trước khi chúng ta đi sâu vào nội dung, máy chủ Windows cần có một số thứ để “đồng ý ” được Ansible quản lý. Danh sách dưới đây là đủ:
- Powershell phiên bản 3.0 trở lên
- .NET Framework 4.0 trở lên
- Trình nghe quản lý từ xa Windows hoặc SSH (cygwin)
- Windows 7+ và hệ điều hành máy chủ bao gồm Windows Server 2008+
- sôcôla
- WSUS để cập nhật các gói hệ điều hành và vá lỗi
- Ansible hoặc AWX
Bước 1: Cài đặt Chocalatey và WSUS
Là Hệ điều hành được sử dụng rộng rãi nhất trên máy tính cá nhân, người dùng Windows có thể hưởng lợi rất nhiều từ một công cụ như Chocolatey để cài đặt và quản lý phần mềm nói chung của họ. Nó giúp việc cài đặt ứng dụng thông qua Dòng lệnh hoặc PowerShell trở nên dễ dàng đến thế. Mặt khác, WSUS giúp người dùng dễ dàng cung cấp các bản cập nhật/bản vá Hệ điều hành.
Để cài đặt Chocolatey, hãy làm theo quá trình thiết lập và quản lý Ứng dụng Windows từ Dấu nhắc Lệnh với hướng dẫn chi tiết về Chocolatey. Sau khi hoàn tất, bạn có thể tiến hành cài đặt WSUS bằng cách sử dụng hướng dẫn cách cài đặt Windows Service Update Services trên Windows Server 2019.
Bước 2: Cài đặt Ansible AWX
Chúng tôi sẽ sử dụng Ansible AWX trong hướng dẫn này để quản lý (các) máy chủ Windows do tính dễ sử dụng và không gian quản lý web thân thiện mà hầu hết mọi người sẽ yêu thích. Bạn có thể cài đặt Ansible AWX bằng cách sử dụng hướng dẫn Cài đặt và Định cấu hình Ansible AWX trên CentOS 8.
Thứ cần thêm vào Máy chủ AWX của bạn là pywinrm. Ansible sử dụng gói pywinrm để liên lạc với máy chủ Windows qua WinRM. Nó không được cài đặt theo mặc định với gói Ansible, nhưng có thể được cài đặt bằng cách chạy như sau:
sudo pip3 install "pywinrm>=0.2.2"Sau khi bạn hoàn tất quá trình cài đặt cũng như cài đặt pywinrm, hãy thiết lập phần sau trong AWX như được mô tả trong hướng dẫn:
- Người dùng có các quyền cần thiết và một nhóm tùy chọn
- Một tổ chức hoặc bạn có thể sử dụng tổ chức mặc định
- Thông tin xác thực để kết nối với máy chủ Windows
- Khoảng không quảng cáo chứa danh sách máy chủ của bạn (Thêm các biến như được chia sẻ bên dưới)
- Thiết lập Dự án - Bạn có thể sử dụng kho lưu trữ GitHub có sách giải trí
- Thiết lập một mẫu có mọi thứ sẵn sàng để khởi chạy
Bạn sẽ thêm một số thay đổi vào kho để bao gồm các biến đặc biệt phù hợp với các tính năng của WinRM. Sau đây là các biến bạn nên thêm trong “khoảng không quảng cáo ” và ảnh chụp màn hình được chia sẻ cho cùng một tệp .
ansible_connection: winrm
ansible_winrm_transport: basic
ansible_winrm_server_cert_validation: ignoreBước 3: Định cấu hình Quản lý từ xa Windows cho Ansible
Vì Ansible không sử dụng tác nhân nào được cài đặt trên các máy chủ đang được quản lý nên nó tận dụng những gì Hệ điều hành đã cung cấp để liên lạc. Trong Windows 2019, Secure Shell (ssh) đã được giới thiệu nhưng trong trường hợp bạn có các phiên bản Máy chủ khác dưới 2019, thì bạn sẽ phải chọn Windows Remote Management (WinRM) vì nó cũng có sẵn trong các phiên bản khác.
Có hai thành phần chính của dịch vụ WinRM chi phối cách Ansible có thể giao tiếp với máy chủ Windows: trình nghe và cài đặt cấu hình dịch vụ. Dịch vụ WinRM lắng nghe yêu cầu trên một hoặc nhiều cổng. Mỗi cổng này phải có một trình lắng nghe được tạo và cấu hình.
Chúng ta sẽ sử dụng tập lệnh này, configureRemotingForAnsible.ps1, tập lệnh này có thể được sử dụng để thiết lập những điều cơ bản. Tập lệnh này thiết lập cả trình nghe HTTP và HTTPS bằng chứng chỉ tự ký và bật tùy chọn xác thực Cơ bản trên dịch vụ. Thông tin thêm về điều này có thể được tìm thấy trên Ansible Docs
Để sử dụng tập lệnh này, hãy chạy lệnh sau trong PowerShell (với tư cách Quản trị viên):
$url = "https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"
$file = "$env:temp\ConfigureRemotingForAnsible.ps1"
(New-Object -TypeName System.Net.WebClient).DownloadFile($url, $file)
powershell.exe -ExecutionPolicy ByPass -File $fileMột ảnh chụp màn hình được chia sẻ bên dưới cho cùng.
Trình nghe WinRM
Dịch vụ WinRM lắng nghe yêu cầu trên một hoặc nhiều cổng. Mỗi cổng này phải có một trình lắng nghe được tạo và cấu hình. Để xem các trình nghe hiện tại đang chạy trên dịch vụ WinRM, hãy chạy lệnh sau:
winrm enumerate winrm/config/ListenerMột ảnh chụp màn hình khác được chia sẻ bên dưới cũng tương tự.
Bước 4: Thực thi Ansible Playbook trong Windows
Khi WinRM đã được thiết lập, giờ là lúc quản lý nó bằng cách sử dụng Ansible được cài đặt trên máy chủ Linux mà bạn chọn. Nếu thích sử dụng thiết bị đầu cuối, bạn có thể thêm máy chủ có tên windows vào tệp “/etc/ansible/hosts ” sau đó thực hiện lệnh bên dưới để kiểm tra xem mọi thứ có hoạt động tốt không.
ansible -i windows -m win_ping -e ansible_connection=winrm \
-e ansible_user=<Your-Windows-User> -e ansible_password=<Your-Windows-Password> \
-e ansible_winrm_transport=basic \
-e ansible_winrm_server_cert_validation=ignoreBạn sẽ thấy một thông báo như bên dưới nếu mọi thứ đều ổn
172.19.253.55 | SUCCESS => {
"changed": false,
"ping": "pong"
}Sau khi thử nghiệm đã hoàn tất và thành công, chúng tôi có thể quay lại giao diện web AWX của mình và thực thi các sách hướng dẫn. Tùy thuộc vào nơi bạn quyết định đặt Playbook của mình (Git hoặc trong máy chủ), đã đến lúc tạo mẫu rồi khởi chạy mẫu đó. Chúng tôi giả định rằng bạn đã tạo thông tin xác thực, người dùng, tổ chức, dự án, khoảng không quảng cáo và hiện là mẫu.
Tôi đã sử dụng một dự án có sổ tay trong máy chủ (SCM thủ công) vì nó có thể được hiển thị trong ảnh chụp màn hình bên dưới.
Tôi đã tạo một thư mục có tên “test ” trong “/var/lib/awx/projects ” sau đó tạo một playbook mẫu có tên “main.yaml ” với nội dung sau:
- hosts: all
gather_facts: true
tasks:
- name: Install Git
win_chocolatey:
name: git
state: presentViệc cài đặt “Git ” trong máy chủ Windows 2019 mà chúng tôi đã chuẩn bị ở trên là một nhiệm vụ đơn giản.
Khi đã xong, chúng ta có thể tiếp tục và tạo một “Mẫu ” để gắn kết mọi thứ lại với nhau và thực thi cẩm nang. Một ảnh chụp màn hình được chia sẻ bên dưới với các cài đặt được điền vào.
Lưu nó sau đó khởi chạy.
Trong trường hợp mọi việc suôn sẻ, playbook sẽ bắt đầu chạy và thông báo thành công sẽ hiển thị. Một minh họa được hiển thị dưới đây
Bước 5: Xác nhận Git đã được cài đặt
Sau khi chơi xong, chúng ta có thể đăng nhập vào Windows Server để xác nhận rằng Git thực sự đã được Ansible cài đặt bằng Chocolatey. Nhấn vào biểu tượng “Bắt đầu” hoặc và bạn sẽ thấy “Git ” dưới dạng một ứng dụng mới như hiển thị bên dưới.
Và chúng ta đã sẵn sàng để đi!!
suy nghĩ cuối cùng
AWX và Ansible nói chung là lựa chọn phù hợp, đặc biệt nếu bạn đang quản lý nhiều máy chủ. Thiết lập mọi thứ một lần rồi thư giãn khi bạn thêm Playbooks để định cấu hình cơ sở hạ tầng của mình. Nếu bạn chưa dấn thân vào thế giới đầy màu sắc của Ansible và tự động hóa, thì hãy lên chuyến tàu tiếp theo đến vùng đất tuyệt vời đó. Cuối cùng, chúng tôi tiếp tục cảm ơn sự hỗ trợ tuyệt vời của bạn và chúng tôi hy vọng hướng dẫn này hữu ích và bạn tiếp tục giữ an toàn. Các hướng dẫn khác có thể tấn công sự chú ý của bạn bao gồm những điều sau đây.
Tạo chứng chỉ tự ký OpenSSL với Ansible
Quản lý người dùng và nhóm trên Linux bằng Ansible
Cách tạo mật khẩu mã hóa người dùng Linux cho Ansible
Thiết lập cụm Elaticsearch trên CentOS | Ubuntu với Ansible
Cài đặt Apache Tomcat trên Debian 10 bằng Ansible







