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ề rever.yml
tập tin nhiệm vụ:
- tên: Hoàn nguyên về ảnh chụp nhanh
vmware_guest_snapshot:
tên máy chủ: "{{ vcenter_hostname }}"
tên người dùng: "{{ vcenter_username }}"
mật khẩu: "{{ vcenter_password }}"
trung tâm dữ liệu: "{{ datacenter_name }}"
trạng thái: hoàn nguyên
snapshot_name: SẠCH
ủy nhiệm_to: máy chủ cục bộ
- Đã 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
- 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ụ: hoàn nguyên.yml
- nhập_tác vụ: shutdown.yml
- 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
Trước khi tôi thực hiện playbook để hoàn nguyên tất cả các máy trong phòng thí nghiệm, tôi đã kiểm tra một chút
của cú pháp playbook:
ansible-playbook playbooks/revert_lab.yml --syntax-check
Lỗi tôi nhận được là:
[CẢNH BÁO]: Ansible đang được chạy trong một thư mục có thể ghi trên thế giới (/ansible), bỏ qua nó dưới dạng nguồn ansible.cfg. Để biết thêm thông tin xem
https://docs.ansible.com/ansible/devel/reference_appendices/config.html#cfg-in-world-writable-dir
[CẢNH BÁO KHÔNG DÙNG]: Ansible sẽ yêu cầu Python 3.8 trở lên trên bộ điều khiển bắt đầu với Ansible 2.12. Phiên bản hiện tại: 3.6.8 (mặc định, ngày 16 tháng 11 năm 2020, 16:55:22) [GCC
4.8.5 20150623 (Mũ đỏ 4.8.5-44)]. Tính năng này sẽ bị xóa khỏi ansible-core trong phiên bản 2.12. Cảnh báo khấu hao có thể bị vô hiệu hóa bằng cách cài đặt
deprecation_warnings=Sai trong ansible.cfg.
[CẢNH BÁO]: Không có khoảng không quảng cáo nào được phân tích cú pháp, chỉ có localhost tiềm ẩn
[CẢNH BÁO]: danh sách máy chủ được cung cấp trống, chỉ có máy chủ cục bộ. Lưu ý rằng localhost ngầm định không khớp với 'tất cả'
LỖI! không tìm thấy vai trò 'vcenter' trong /ansible/playbooks/roles:/root/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:/ansible/playbooks
Lỗi dường như ở '/ansible/playbooks/revert_lab.yml': dòng 5, cột 5, nhưng có thể
ở nơi khác trong tệp tùy thuộc vào vấn đề cú pháp chính xác.
Dòng vi phạm dường như là:
vai trò:
- vcenter
^ ở đây
tôi quyết định thêm ansible.cfg
vào kho lưu trữ của tôi với a role_path
Chìa khóa:
[mặc định]
hàng tồn kho = /ansible/hàng tồn kho
role_path = /ansible/roles
# role_path = ./roles:..~/ansible/roles
Tôi chạy lại --syntax-kiểm tra
lệnh nhưng gặp lỗi tương tự. Tôi đã thử các loại thống kê đường dẫn vai trò khác nhau - và gặp lỗi tương tự. Tất nhiên ansible-playbook
lệnh không hoạt động (có cùng thông báo lỗi):
ansible-playbook playbooks/revert_lab.yml -i hàng tồn kho/test/onpremis/domain.com/lab_r.yml
Cho nên,
Làm cách nào để ansible nhận ra vai trò của tôi?
Làm cách nào để khiến ansible chạy thành công playbook của tôi?
Ansible.cfg có liên quan hay không liên quan đến "câu chuyện"?
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