Tôi khá mới với Ansible nên tôi có thể định cấu hình sai
[Tôi có một bộ chứa Docker đang chạy dịch vụ Ansible trong đó
Tôi có một kho lưu trữ Ansible bao gồm các tệp Ansible (đây là kho lưu trữ .Git]
ý muốn của tôi là tự động hoàn nguyên mỗi phòng thí nghiệm trong máy chủ vCenter thành một ảnh chụp nhanh cụ thể
Vì vậy, tôi (với sự giúp đỡ của ansible-roles-explained-with-ví dụ hướng dẫn):
- Tạo một vai trò với
ansible-galaxy init
tên lệnh vcenter
(xem cây thư mục bên dưới)
- Đã tạo một số tệp tác vụ vcenter bên trong
nhiệm vụ
thư mục (xem cây thư mục bên dưới). Đây là một ví dụ về tắt nguồn.yml
tập tin nhiệm vụ:
- tên: Đặt trạng thái của máy ảo thành tắt nguồn
cộng đồng.vmware.vmware_guest_powerstate:
tên máy chủ: "{{ vcenter_hostname }}"
tên người dùng: "{{ vcenter_username }}"
mật khẩu: "{{ vcenter_password }}"
thư mục: "/{{ datacenter_name }}/{{ thư mục }}"
# tên: "{{ guest_name }}"
tên: "{{ ansible_hostname }}"
xác thực_certs: không
trạng thái: tắt nguồn
ủy nhiệm_to: máy chủ cục bộ
đăng ký: triển khai
- Đã cung cấp thông tin đăng nhập vCenter trong
vcenter\vars\main.yml
tập tin, như thế này:
# tệp vars cho vcenter
vcenter_hostname: vcenter.foo.com
vcenter_username: [email protected]
vcenter_password: f#0$o#1$0o
datacenter_name: FOO_Fighters
# tên_kho_dữ_liệu:
tên_cụm: FOO
thư mục: '/FOO/PRODUCT/DOMAIN.COM/'
- Bao gồm các nhiệm vụ trong
nhiệm vụ\main.yml
tập tin với nhiệm vụ nhập khẩu
chìa khóa, như thế này:
---
# tệp nhiệm vụ cho vai trò/vcenter
- nhập_tác vụ: poweroff.yml
# - nhập_tác vụ: poweron.yml
# - nhập_tác vụ: revert.yml
# - nhập_tác vụ: shutdown.yml
- Tạo ra một
tất cả.yml
bên trong thư mục group_vars trong thư viện kiểm kê (tôi không biết đó có phải là cách chuyên nghiệp để làm như vậy không) bao gồm tất cả các chi tiết winrm như thế này:
---
Chi tiết giao thức #WinRM
ansible_user: DOMAIN\người dùng
ansible_password: f#0$o#1$0o
ansible_connection: winrm
ansible_port: 5985
ansible_winrm_scheme: http
ansible_winrm_server_cert_validation: bỏ qua
ansible_winrm_transport: ntlm
ansible_winrm_read_timeout_sec: 60
ansible_winrm_operation_timeout_sec: 58
- Tạo ra một
revert_lab.yml
vở kịch bao gồm vai trò, như thế này
---
- tên: hoàn nguyên phòng thí nghiệm onpremis
máy chủ: tất cả
vai trò:
- vcenter
Của tôi ansible.cfg
là như thế này:
[mặc định]
hàng tồn kho = /ansible/hàng tồn kho
role_path = ./roles:..~/ansible/roles
Tôi đã thực hiện playbook để hoàn nguyên tất cả các máy trong phòng thí nghiệm:
ansible-playbook playbooks/revert_vcenter_lab.yml -i hàng tồn kho/test/onpremis/domain.com/lab_r.yml
Lỗi tôi nhận được là:
NHIỆM VỤ [Thu thập thông tin] ********************************************* *************************************************** *************************************************** ***
[CẢNH BÁO]: Lỗi khi thu thập dữ kiện winrm: Bạn không thể gọi phương thức trên biểu thức có giá trị null. Tại dòng:15 ký tự:17 + ...
$ansibleFacts.ansible_win_rm_certificate_expires = $_.Không ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~ + CategoryInfo :
InvalidOperation: (:) [], RuntimeException + FullQualifiedErrorId : InvokeMethodOnNull tại <ScriptBlock>, <Không có tệp>: dòng 15 tại <ScriptBlock>, <Không có tệp>: dòng
13
được rồi: [vm1.domain.com]
được rồi: [vm2.domain.com]
được rồi: [vm3.domain.com]
được rồi: [vm4.domain.com]
được rồi: [vm5.domain.com]
được rồi: [vm6.domain.com]
được rồi: [vm7.domain.com]
được rồi: [vm8.domain.com]
NHIỆM VỤ [vcenter: Đặt trạng thái tắt nguồn của máy ảo] ************************************ *************************************************** ************************
gây tử vong: [vm1.domain.com -> localhost]: KHÔNG THÀNH CÔNG! => {"đã thay đổi": sai, "thông điệp": "Không thể đặt trạng thái nguồn cho máy ảo không tồn tại: 'VM1'"}
gây tử vong: [vm2.domain.com -> localhost]: KHÔNG THÀNH CÔNG! => {"đã thay đổi": sai, "thông điệp": "Không thể đặt trạng thái nguồn cho máy ảo không tồn tại: 'VM2'"}
gây tử vong: [vm3.domain.com -> localhost]: KHÔNG THÀNH CÔNG! => {"đã thay đổi": sai, "thông điệp": "Không thể đặt trạng thái nguồn cho máy ảo không tồn tại: 'VM3'"}
gây tử vong: [vm4.domain.com -> localhost]: KHÔNG THÀNH CÔNG! => {"đã thay đổi": sai, "thông điệp": "Không thể đặt trạng thái nguồn cho máy ảo không tồn tại: 'VM4'"}
gây tử vong: [vm5.domain.com -> localhost]: KHÔNG THÀNH CÔNG! => {"đã thay đổi": sai, "thông điệp": "Không thể đặt trạng thái nguồn cho máy ảo không tồn tại: 'VM5'"}
gây tử vong: [vm6.domain.com -> localhost]: KHÔNG THÀNH CÔNG! => {"đã thay đổi": sai, "thông điệp": "Không thể đặt trạng thái nguồn cho máy ảo không tồn tại: 'VM6'"}
gây tử vong: [vm7.domain.com -> localhost]: KHÔNG THÀNH CÔNG! => {"đã thay đổi": sai, "thông điệp": "Không thể đặt trạng thái nguồn cho máy ảo không tồn tại: 'VM7'"}
gây tử vong: [vm8.domain.com -> localhost]: KHÔNG THÀNH CÔNG! => {"đã thay đổi": sai, "thông điệp": "Không thể đặt trạng thái nguồn cho máy ảo không tồn tại: 'VM8'"}
TÓM TẮT CHƠI *************************************************** *************************************************** *************************************************** ************
vm1.domain.com : ok=1 đã thay đổi=0 không truy cập được=0 thất bại=1 bị bỏ qua=0 đã giải cứu=0 bị bỏ qua=0
vm2.domain.com : ok=1 đã thay đổi=0 không truy cập được=0 thất bại=1 bị bỏ qua=0 được giải cứu=0 bị bỏ qua=0
vm3.domain.com : ok=1 thay đổi=0 không truy cập được=0 thất bại=1 bỏ qua=0 giải cứu=0 bỏ qua=0
vm4.domain.com : ok=1 đã thay đổi=0 không truy cập được=0 thất bại=1 bị bỏ qua=0 đã giải cứu=0 bị bỏ qua=0
vm5.domain.com : ok=1 đã thay đổi=0 không truy cập được=0 thất bại=1 bị bỏ qua=0 được giải cứu=0 bị bỏ qua=0
vm6.domain.com : ok=1 đã thay đổi=0 không truy cập được=0 thất bại=1 bị bỏ qua=0 đã giải cứu=0 bị bỏ qua=0
vm7.domain.com : ok=1 đã thay đổi=0 không truy cập được=0 thất bại=1 bị bỏ qua=0 được giải cứu=0 bị bỏ qua=0
vm8.domain.com : ok=1 đã thay đổi=0 không truy cập được=0 thất bại=1 bị bỏ qua=0 đã giải cứu=0 bị bỏ qua=0
một) Làm thế nào để tôi thoát khỏi Lỗi khi thu thập thông tin winrm
lỗi? (Có vẻ như playbook không nhận ra tất cả.yml
tập tin với chiến thắng, nhưng tại sao?)
b) Làm cách nào để khắc phục lỗi "Không thể đặt trạng thái nguồn cho máy ảo không tồn tại..."? (Chúng ta có thể thấy rằng quyền truy cập Playbook vào các máy của fqdns được đề cập trong tệp lab_r.yml (từ thư viện kiểm kê) nhưng lỗi liên quan đến tên máy như được hiển thị trong nền tảng vCenter...)
Kho lưu trữ của tôi:
C:.
ââââansible
â â ansible.cfg
â ââââhàng tồn kho
â â ââââkiểm tra
â â ââââđám mây
â â ââââonpremis
â â ââââdomain.com
â â â lab_j.yml
â â â lab_r.yml
â â ââââgroup_vars
â â all.yml
â ââââsách vở
â â revert_lab.yml
â ââââvai trò
â ââââvcenter
â âââânhiệm vụ
â â main.yml
â â poweroff.yml
â â poweron.yml
â â revert.yml
â â shutdown.yml
â ââââvars
â main.yml
khoảng không quảng cáo của tôi lab_r.yml
- đây là một lược đồ một phần
---
tất cả các:
bọn trẻ:
nguồn gốc:
bọn trẻ:
trung tâm:
bọn trẻ:
máy chủ ứng dụng:
máy chủ:
vm1.domain.com:
máy chủ q:
máy chủ:
vm2.domain.com:
máy chủ db:
máy chủ:
vm3.domain.com: