Có một mô-đun ansible kiểm tra xem một cổng không ở trạng thái LISTEN?


8

Chỉ số mô-đun Ansible đã được tư vấn, nhưng không có mô-đun nào được tìm thấy để kiểm tra xem một cổng có khả dụng không? Có một mô-đun hỗ trợ này?

availablenghĩa là gì?

Có sẵn có nghĩa là một cổng, ví dụ 80không ở trạng thái LISTEN. Sau đây chỉ ra rằng cổng 111 không có sẵn.

user@localhost ~ $ ss -nat
State      Recv-Q Send-Q Local Address:Port    Peer Address:Port              
LISTEN     0      128       *:111                   *:*

Mục đích của câu hỏi này là gì?

Mục đích của câu hỏi này là tìm cách ngăn chặn một cuộc chạy Ansible khi cổng 80 đã được phân bổ bởi một quy trình khác ngoài certbot. Certbot yêu cầu cổng 80 phải có sẵn, nếu không chứng chỉ không thể được gia hạn. Vấn đề có thể được tìm thấy ở đây .

Câu trả lời:


11

Tôi nghĩ rằng bạn đang tìm kiếm các wait_formô-đun . Nó sẽ cho phép bạn kiểm tra và thực hiện hành động khi một cổng nhất định có sẵn và hơn thế nữa.


Nhà nước stoppednên dùng?
030

1
nếu tôi hiểu chính xác trường hợp sử dụng cụ thể của bạn - có.
13dimitar

2

Dựa trên câu trả lời của @ 13nilux, đoạn mã sau đã được tạo:

- name: Check whether port 80 is available
  wait_for:
    port: 80
    state: stopped
    timeout: 10

Khi cổng 80 nghe, việc chạy sẽ thất bại nếu ví dụ nginx đang nghe:

TASK [role_under_test : Check whether port 80 is available] ********************

fatal: [localhost]: FAILED! => {"changed": false, "elapsed": 10, "failed": true, "msg": "Timeout when waiting for 127.0.0.1:80 to stop."}

 [WARNING]: Could not create retry file

'/etc/ansible/roles/role_under_test/tests/test.retry'.         [Errno 30] Read-

only file system: u'/etc/ansible/roles/role_under_test/tests/test.retry'

-1

Letsencrypt được đổi tên trong thời gian dài thành certbot. Bạn có thể tự động hóa quy trình gia hạn chứng chỉ bằng cách định cấu hình máy chủ phục vụ tên miền bằng cách cài đặt certbot và định cấu hình máy chủ web để xử lý thư mục bằng mã xác thực như /.well-known/acme-challenge/đối với các tên miền trong certs có chữ ký của Encrypt, sau đó sử dụng Playbook Ansible cho quá trình gia hạn thủ công hoặc chạy cùng một lệnh bằng cron.


yeah, nhưng điều gì xảy ra nếu cổng 80 không có sẵn? Sau đó, quá trình gia hạn chứng chỉ không thành công
030

@ 030 chế độ thủ công không yêu cầu bất kỳ cổng nào, vì đó là thủ công. httpphương pháp sử dụng máy chủ web hiện có.
chupasaurus

Nơi làm /path/to/http/authenticator.sh/path/to/http/cleanup.shcư trú? Có lẽ bạn có thể thêm câu hỏi này vào câu hỏi để ngăn chặn thông tin đó sẽ bị mất nếu liên kết không được chấp nhận.
030

@ 030 Đây là các tập lệnh do người dùng định nghĩa có thể ở bất kỳ đâu (với nội dung ví dụ được cung cấp), nhưng việc triển khai thực tế có thể thay đổi tùy theo cấu hình máy chủ và phương thức web.
chupasaurus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.