Để đạt được mục tiêu trong Ansible, nói chung nên sử dụng các mô-đun dịch vụ, dịch vụ
, sysvinit
hoặc hệ thống
. Trong ví dụ như
---
- máy chủ: localhost
trở thành: có
trở thành_method: sudo
thu thập_sự thật: có
nhiệm vụ:
- tên: Thu thập thông tin dịch vụ
dịch vụ_sự thật:
- tên: Đảm bảo dịch vụ đã dừng
hệ thống:
tên: http
trạng thái: đã dừng
kích hoạt: không
khi: ("httpd.service" trong dịch vụ)
Nếu bạn thích sử dụng vỏ bọc
_module, đối với tôi cần nhiều công việc hơn.
ví dụ cho nginx
lấy đúng PID trước, vì có một quy trình chính và bốn worker.
- tên: Nhận nginx PID
vỏ bọc:
cmd: "ps -C nginx -o pid --no-headers | đầu 1"
cảnh báo: sai
đã thay đổi khi: sai
check_mode: sai
đăng ký: nginx_pid
Nó cũng có thể làm một cái gì đó như
- tên: Nhận nginx PID
vỏ bọc:
cmd: "pidof nginx"
cảnh báo: sai
đã thay đổi khi: sai
check_mode: sai
đăng ký: nginx_pids
- tên: Hiển thị PID
gỡ lỗi:
biến: nginx_pids
- tên: Giết nginx
vỏ bọc:
cmd: "giết -9 {{ nginx_pids }}"
...
Về
Tôi muốn thêm tùy chọn thoát khỏi ansible-playbook run nếu không thành công.
đến kết thúc quá trình chạy playbook bạn đã có thể sử dụng
- meta: end_play
khi nào: điều_kiện_được_gặp
sử dụng Thất bại
_mô-đun thành
- tên: Nhiệm vụ đã thất bại vì
Thất bại:
msg: "{{ fail_message }}"
khi nào: điều_kiện_được_gặp
hoặc là khẳng định
_module.
Về mã thoát (EC) hoặc mã trả về (RC), bạn có thể xem qua Làm cách nào để lấy danh sách mã thoát (và/hoặc mã trả về) và ý nghĩa của lệnh/tiện ích?.