Actualiser ping-portainer.yml
This commit is contained in:
parent
7d902bc6a1
commit
ac99824280
|
|
@ -12,55 +12,53 @@
|
||||||
portainer_internal_ip: 10.30.0.151
|
portainer_internal_ip: 10.30.0.151
|
||||||
portainer_port: 9443
|
portainer_port: 9443
|
||||||
|
|
||||||
# Port local aléatoire pour éviter les collisions entre jobs Semaphore
|
|
||||||
local_port: "{{ 20000 + (9999 | random) }}"
|
local_port: "{{ 20000 + (9999 | random) }}"
|
||||||
|
|
||||||
# Socket ControlMaster (pour fermer proprement le tunnel)
|
|
||||||
ssh_control_socket: "/tmp/ansible-ssh-tunnel-{{ local_port }}.sock"
|
ssh_control_socket: "/tmp/ansible-ssh-tunnel-{{ local_port }}.sock"
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- name: Ouvrir le tunnel SSH (fork en background)
|
- block:
|
||||||
shell: >
|
|
||||||
ssh
|
|
||||||
-p {{ ssh_port }}
|
|
||||||
-o ExitOnForwardFailure=yes
|
|
||||||
-o StrictHostKeyChecking=no
|
|
||||||
-o UserKnownHostsFile=/dev/null
|
|
||||||
-o ServerAliveInterval=10
|
|
||||||
-o ServerAliveCountMax=3
|
|
||||||
-M -S {{ ssh_control_socket }}
|
|
||||||
-f -N
|
|
||||||
-L 127.0.0.1:{{ local_port }}:{{ portainer_internal_ip }}:{{ portainer_port }}
|
|
||||||
{{ ssh_user }}@{{ ssh_host }}
|
|
||||||
register: tunnel_open
|
|
||||||
changed_when: true
|
|
||||||
failed_when: tunnel_open.rc != 0
|
|
||||||
|
|
||||||
- name: Attendre que le port local du tunnel soit en écoute
|
- name: Ouvrir le tunnel SSH (fork en background)
|
||||||
wait_for:
|
shell: >
|
||||||
host: 127.0.0.1
|
ssh
|
||||||
port: "{{ local_port }}"
|
-p {{ ssh_port }}
|
||||||
delay: 1
|
-o ExitOnForwardFailure=yes
|
||||||
timeout: 20
|
-o StrictHostKeyChecking=no
|
||||||
|
-o UserKnownHostsFile=/dev/null
|
||||||
|
-o ServerAliveInterval=10
|
||||||
|
-o ServerAliveCountMax=3
|
||||||
|
-M -S {{ ssh_control_socket }}
|
||||||
|
-f -N
|
||||||
|
-L 127.0.0.1:{{ local_port }}:{{ portainer_internal_ip }}:{{ portainer_port }}
|
||||||
|
{{ ssh_user }}@{{ ssh_host }}
|
||||||
|
register: tunnel_open
|
||||||
|
changed_when: true
|
||||||
|
|
||||||
- name: Ping HTTPS Portainer via le tunnel
|
- name: Attendre que le port local du tunnel soit en écoute
|
||||||
uri:
|
wait_for:
|
||||||
url: "https://127.0.0.1:{{ local_port }}/"
|
host: 127.0.0.1
|
||||||
method: GET
|
port: "{{ local_port }}"
|
||||||
validate_certs: false
|
delay: 1
|
||||||
return_content: false
|
timeout: 20
|
||||||
status_code: [200, 301, 302, 403]
|
|
||||||
register: portainer_response
|
|
||||||
|
|
||||||
- name: OK
|
- name: Ping HTTPS Portainer via le tunnel
|
||||||
debug:
|
uri:
|
||||||
msg: "✅ Portainer joignable via tunnel (status {{ portainer_response.status }})"
|
url: "https://127.0.0.1:{{ local_port }}/"
|
||||||
|
method: GET
|
||||||
|
validate_certs: false
|
||||||
|
return_content: false
|
||||||
|
status_code: [200, 301, 302, 403]
|
||||||
|
register: portainer_response
|
||||||
|
|
||||||
always:
|
- name: OK
|
||||||
- name: Fermer le tunnel SSH (si ouvert)
|
debug:
|
||||||
shell: >
|
msg: "✅ Portainer joignable via tunnel (status {{ portainer_response.status }})"
|
||||||
ssh -p {{ ssh_port }}
|
|
||||||
-S {{ ssh_control_socket }}
|
always:
|
||||||
-O exit
|
- name: Fermer le tunnel SSH (si ouvert)
|
||||||
{{ ssh_user }}@{{ ssh_host }}
|
shell: >
|
||||||
ignore_errors: true
|
ssh -p {{ ssh_port }}
|
||||||
|
-S {{ ssh_control_socket }}
|
||||||
|
-O exit
|
||||||
|
{{ ssh_user }}@{{ ssh_host }}
|
||||||
|
ignore_errors: true
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue