diff --git a/playbook.yaml b/playbook.yaml index 9426ffd..9526ec4 100644 --- a/playbook.yaml +++ b/playbook.yaml @@ -125,19 +125,19 @@ # async: "{{ 60 * 20 }}" # poll: 30 - - name: Check no-proxy ipfs access - ansible.builtin.shell: | - curl -s -w "%{http_code}" -o response.json {{ ipfs_url }} - register: noproxy_check - changed_when: false - failed_when: noproxy_check.stdout != "200" - - - name: Check proxy ipfs access - ansible.builtin.shell: | - curl -s -w "%{http_code}" -o response.json -x {{ proxy }} {{ ipfs_url }} - register: proxy_check - changed_when: false - failed_when: proxy_check.stdout != "200" +# - name: Check no-proxy ipfs access +# ansible.builtin.shell: | +# curl -s -w "%{http_code}" -o response.json {{ ipfs_url }} +# register: noproxy_check +# changed_when: false +# failed_when: noproxy_check.stdout != "200" +# +# - name: Check proxy ipfs access +# ansible.builtin.shell: | +# curl -s -w "%{http_code}" -o response.json -x {{ proxy }} {{ ipfs_url }} +# register: proxy_check +# changed_when: false +# failed_when: proxy_check.stdout != "200" # - name: Install Docker # ansible.builtin.shell: curl -fsSL https://get.docker.com | bash @@ -219,132 +219,132 @@ async: "{{ 60 * 45 }}" poll: "{{ 60 * 5 }}" - - name: Docker pre-up - ansible.builtin.command: docker compose up -d - args: - chdir: "{{ ansible_env.HOME }}/basic-coin-prediction-node" - environment: - COMPOSE_INTERACTIVE_NO_CLI: 'true' - changed_when: false - async: "{{ 60 * 80 }}" - poll: "{{ 60 * 5 }}" +# - name: Docker pre-up +# ansible.builtin.command: docker compose up -d +# args: +# chdir: "{{ ansible_env.HOME }}/basic-coin-prediction-node" +# environment: +# COMPOSE_INTERACTIVE_NO_CLI: 'true' +# changed_when: false +# async: "{{ 60 * 80 }}" +# poll: "{{ 60 * 5 }}" - - name: Check Docker container status - ansible.builtin.shell: > - if [ $(docker ps -q | wc -l) -eq $(docker ps -a -q | wc -l) ]; then - echo "all_running"; - else - echo "not_all_running"; - fi - register: container_status - retries: 10 - delay: 30 - until: container_status.stdout.find("all_running") != -1 +# - name: Check Docker container status +# ansible.builtin.shell: > +# if [ $(docker ps -q | wc -l) -eq $(docker ps -a -q | wc -l) ]; then +# echo "all_running"; +# else +# echo "not_all_running"; +# fi +# register: container_status +# retries: 10 +# delay: 30 +# until: container_status.stdout.find("all_running") != -1 +# +# - name: Docker stop (pre-up) +# ansible.builtin.command: docker compose stop +# args: +# chdir: "{{ ansible_env.HOME }}/basic-coin-prediction-node" +# environment: +# COMPOSE_INTERACTIVE_NO_CLI: 'true' +# changed_when: false +# +# - name: Check external IP before +# ansible.builtin.command: curl https://ifconfig.me +# register: ip_before +# changed_when: false +# +# - name: Validate IP address +# ansible.builtin.assert: +# that: +# - ip_before.stdout | ansible.utils.ipaddr +# fail_msg: "The returned value is not a valid IP address." +# success_msg: "The returned value is a valid IP address." - - name: Docker stop (pre-up) - ansible.builtin.command: docker compose stop - args: - chdir: "{{ ansible_env.HOME }}/basic-coin-prediction-node" - environment: - COMPOSE_INTERACTIVE_NO_CLI: 'true' - changed_when: false +# - name: Download tun2socks +# ansible.builtin.get_url: +# url: https://github.com/xjasonlyu/tun2socks/releases/download/v2.5.2/tun2socks-linux-amd64.zip +# dest: /tmp/tun2socks-linux-amd64.zip +# mode: '0644' +# async: "{{ 60 * 5 }}" +# poll: 30 +# +# - name: Unzip tun2socks +# ansible.builtin.unarchive: +# src: /tmp/tun2socks-linux-amd64.zip +# dest: /usr/local/sbin/ +# remote_src: true +# mode: '0755' +# +# - name: Create proxy file +# ansible.builtin.copy: +# content: "{{ proxy }}" +# dest: /root/proxy +# mode: '0644' +# +# - name: Create tun2socks systemd service +# ansible.builtin.copy: +# dest: /etc/systemd/system/tun2socks.service +# content: | +# [Unit] +# Description=Tun2Socks gateway +# After=network.target +# Wants=network.target +# +# [Service] +# User=root +# Type=simple +# RemainAfterExit=true +# ExecStartPre=/bin/sh -c 'ip route add $(cat /root/proxy | grep -oP "(?<=@)[0-9.]+(?=:)" )/32 via $(ip route | grep -oP "(?<=default via )[0-9.]+")' +# ExecStart=/bin/sh -c '/usr/local/sbin/tun2socks-linux-amd64 --device tun0 --proxy $(cat /root/proxy)' +# ExecStopPost=/bin/sh -c 'ip route del $(cat /root/proxy | grep -oP "(?<=@)[0-9.]+(?=:)" )/32 via $(ip route | grep -oP "(?<=default via )[0-9.]+")' +# Restart=always +# +# [Install] +# WantedBy=multi-user.target +# mode: '0644' +# +# - name: Create network configuration for tun0 +# ansible.builtin.copy: +# dest: /etc/systemd/network/10-proxy.network +# content: | +# [Match] +# Name=tun0 +# +# [Network] +# Address=10.20.30.1/24 +# +# [Route] +# Gateway=0.0.0.0 +# mode: '0644' +# +# - name: Enable and start tun2socks service +# ansible.builtin.systemd: +# name: tun2socks +# enabled: true +# state: started +# +# - name: Reload network configuration +# ansible.builtin.command: networkctl reload +# changed_when: false +# +# - name: Restart tun2socks service +# ansible.builtin.systemd: +# name: tun2socks +# state: restarted - - name: Check external IP before - ansible.builtin.command: curl https://ifconfig.me - register: ip_before - changed_when: false - - - name: Validate IP address - ansible.builtin.assert: - that: - - ip_before.stdout | ansible.utils.ipaddr - fail_msg: "The returned value is not a valid IP address." - success_msg: "The returned value is a valid IP address." - - - name: Download tun2socks - ansible.builtin.get_url: - url: https://github.com/xjasonlyu/tun2socks/releases/download/v2.5.2/tun2socks-linux-amd64.zip - dest: /tmp/tun2socks-linux-amd64.zip - mode: '0644' - async: "{{ 60 * 5 }}" - poll: 30 - - - name: Unzip tun2socks - ansible.builtin.unarchive: - src: /tmp/tun2socks-linux-amd64.zip - dest: /usr/local/sbin/ - remote_src: true - mode: '0755' - - - name: Create proxy file - ansible.builtin.copy: - content: "{{ proxy }}" - dest: /root/proxy - mode: '0644' - - - name: Create tun2socks systemd service - ansible.builtin.copy: - dest: /etc/systemd/system/tun2socks.service - content: | - [Unit] - Description=Tun2Socks gateway - After=network.target - Wants=network.target - - [Service] - User=root - Type=simple - RemainAfterExit=true - ExecStartPre=/bin/sh -c 'ip route add $(cat /root/proxy | grep -oP "(?<=@)[0-9.]+(?=:)" )/32 via $(ip route | grep -oP "(?<=default via )[0-9.]+")' - ExecStart=/bin/sh -c '/usr/local/sbin/tun2socks-linux-amd64 --device tun0 --proxy $(cat /root/proxy)' - ExecStopPost=/bin/sh -c 'ip route del $(cat /root/proxy | grep -oP "(?<=@)[0-9.]+(?=:)" )/32 via $(ip route | grep -oP "(?<=default via )[0-9.]+")' - Restart=always - - [Install] - WantedBy=multi-user.target - mode: '0644' - - - name: Create network configuration for tun0 - ansible.builtin.copy: - dest: /etc/systemd/network/10-proxy.network - content: | - [Match] - Name=tun0 - - [Network] - Address=10.20.30.1/24 - - [Route] - Gateway=0.0.0.0 - mode: '0644' - - - name: Enable and start tun2socks service - ansible.builtin.systemd: - name: tun2socks - enabled: true - state: started - - - name: Reload network configuration - ansible.builtin.command: networkctl reload - changed_when: false - - - name: Restart tun2socks service - ansible.builtin.systemd: - name: tun2socks - state: restarted - -# - name: Check API availability for RPC URL -# ansible.builtin.uri: -# url: "{{ rpc_url }}/health?" -# method: GET -# return_content: true -# timeout: 30 -# register: rpc_url_response -# retries: 3 -# delay: 120 -# failed_when: -# - rpc_url_response.status != 200 -# - rpc_url_response.json is not none and rpc_url_response.json is not defined + - name: Check API availability for RPC URL + ansible.builtin.uri: + url: "{{ rpc_url }}/health?" + method: GET + return_content: true + timeout: 30 + register: rpc_url_response + retries: 3 + delay: 120 + failed_when: + - rpc_url_response.status != 200 + - rpc_url_response.json is not none and rpc_url_response.json is not defined - name: Check API availability for Binance URL ansible.builtin.uri: @@ -375,26 +375,26 @@ register: wallet_balance_check failed_when: wallet_balance_check.rc != 0 - - name: Check external IP after - ansible.builtin.command: curl https://ifconfig.me - register: ip_after - changed_when: false - - - name: Validate IP address - ansible.builtin.assert: - that: - - ip_after.stdout | ansible.utils.ipaddr - fail_msg: "The returned value is not a valid IP address." - success_msg: "The returned value is a valid IP address." - - - name: Show IPs - ansible.builtin.debug: - msg: "External IP before: {{ ip_before.stdout }}, External IP after: {{ ip_after.stdout }}" - - - name: Compare external IPs - ansible.builtin.fail: - msg: "External IP before and after should not be the same" - when: ip_before.stdout == ip_after.stdout +# - name: Check external IP after +# ansible.builtin.command: curl https://ifconfig.me +# register: ip_after +# changed_when: false +# +# - name: Validate IP address +# ansible.builtin.assert: +# that: +# - ip_after.stdout | ansible.utils.ipaddr +# fail_msg: "The returned value is not a valid IP address." +# success_msg: "The returned value is a valid IP address." +# +# - name: Show IPs +# ansible.builtin.debug: +# msg: "External IP before: {{ ip_before.stdout }}, External IP after: {{ ip_after.stdout }}" +# +# - name: Compare external IPs +# ansible.builtin.fail: +# msg: "External IP before and after should not be the same" +# when: ip_before.stdout == ip_after.stdout - name: Docker up ansible.builtin.command: docker compose up -d