Điều quan trọng cần nhớ là trong mục tiêu
lệnh được thực hiện trong một chroot
môi trường. Chúng không được thực thi trong một hệ thống được khởi động đầy đủ, nơi các quy trình cốt lõi như systemd đang chạy và khả dụng.
thử nghiệm
Tôi thiết lập một playbook dựa trên các tác vụ STIG trong ảnh chụp màn hình và chạy nó từ phần chèn sẵn. Tôi thấy kết quả tương tự như bạn.
---
- máy chủ: localhost
thu thập_sự thật: không
kết nối: cục bộ
nhiệm vụ:
- tên: kiểm tra xem rsyslog.service đã được cài đặt chưa
vỏ bọc: ! systemctl list-unit-files | grep "^rsyslog.service[ \t]\+"
đã thay đổi khi: Sai
check_mode: không
đăng ký: kết quả
fail_khi: result.rc > 1
- tên: stigrule_219160_rsyslog_enable
dịch vụ:
tên: rsyslog.service
đã bật: "có"
- Tập tin chèn sẵn một phần
d-i pkgsel/bao gồm chuỗi ansible
d-i preseed/late_command chuỗi \
wget -P /target/ http://REDACTED/my_playbook.yml ; \
trong mục tiêu ansible-playbook -i /dev/null -b -v /my_playbook.yml
Gói Bionic ansible 2.5.1
và phiên bản đó của mô-đun dịch vụ xuất hiện để thực hiện systemctl hiển thị rsyslog.service
. Điều này không hoạt động trong môi trường chroot. Để chứng minh, nếu tôi mở một thiết bị đầu cuối trong môi trường trình cài đặt và chạy chương trình systemctl trong mục tiêu rsyslog.service
sau đó tệp nhật ký sẽ hiển thị đầu ra
trong mục tiêu: Chạy trong chroot, bỏ qua yêu cầu: hiển thị
Khắc phục tiềm năng
Tôi đã tìm thấy một bản vá trong Ansible 2.3 giải quyết vấn đề systemctl đó sẽ bỏ qua các lệnh khi chạy trong môi trường chroot. Điều này chỉ được áp dụng cho hệ thống
mô-đun mặc dù và không phải là dịch vụ
mô-đun. Tôi đã cập nhật playbook của mình và điều này chạy thành công.
---
- máy chủ: localhost
thu thập_sự thật: không
kết nối: cục bộ
nhiệm vụ:
- tên: kiểm tra xem rsyslog.service đã được cài đặt chưa
vỏ bọc: ! systemctl list-unit-files | grep "^rsyslog.service[ \t]\+"
đã thay đổi khi: Sai
check_mode: không
đăng ký: kết quả
fail_khi: result.rc > 1
- tên: stigrule_219160_rsyslog_enable đã sửa
hệ thống:
tên: rsyslog.service
đã bật: "có"
Do đó, bạn có thể tiến xa hơn bằng cách sửa đổi (các) tác vụ STIG bằng cách sử dụng dịch vụ
mô-đun để sử dụng hệ thống
mô-đun.