jpcsmith / qcsd-experiments

MIT License
2 stars 0 forks source link

error occur when run `ansible-playbook -i ansible/local ansible/setup.yml` #1

Open ETOjianglinpai opened 1 year ago

ETOjianglinpai commented 1 year ago

in TASK [Build the browser image], I got errors:

fatal: [localhost]: FAILED! => {"changed": false, "msg": "Error building dep-fetch - code: 4, message: The command '/bin/sh -c wget -q \"https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F${chromium_commit}%2Fchrome-linux.zip?alt=media\"    -O chrome-linux.zip' returned a non-zero code: 4

I think the reasons could be RUN wget -q "https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F${chromium_commit}%2Fchromedriver_linux64.zip?alt=media" -O chromedriver.zip in the Dockerfile. And I cannot visit "https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F${chromium_commit}%2Fchromedriver_linux64.zip?alt=media", has this URL changed?

jpcsmith commented 1 year ago

There is a variable in the URL ${chromium_commit} that is replaced by the docker script, try running the wget in your terminal with that variable replaced to see if the URL really has changed.

On Wed, 1 Feb 2023 at 18:28, ETOjianglinpai @.***> wrote:

in TASK [Build the browser image], I got errors:

fatal: [localhost]: FAILED! => {"changed": false, "msg": "Error building dep-fetch - code: 4, message: The command '/bin/sh -c wget -q \"https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F${chromium_commit}%2Fchrome-linux.zip?alt=media\ https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F$%7Bchromium_commit%7D%2Fchrome-linux.zip?alt=media%5C" -O chrome-linux.zip' returned a non-zero code: 4

I think the reasons could be RUN wget -q " https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F${chromium_commit}%2Fchromedriver_linux64.zip?alt=media https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F$%7Bchromium_commit%7D%2Fchromedriver_linux64.zip?alt=media" -O chromedriver.zip in the Dockerfile. And I cannot visit " https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F${chromium_commit}%2Fchromedriver_linux64.zip?alt=media https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F$%7Bchromium_commit%7D%2Fchromedriver_linux64.zip?alt=media", has this URL changed?

— Reply to this email directly, view it on GitHub https://github.com/jpcsmith/qcsd-experiments/issues/1, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAM4YXGFO3QMD7GRB2T2PJLWVKMLBANCNFSM6AAAAAAUOAFWKI . You are receiving this because you are subscribed to this thread.Message ID: @.***>

ETOjianglinpai commented 1 year ago

in TASK [Check Wireguard client connectivity], I got errors:

failed: [localhost] (item={'region_id': 0, 'client_id': 0, 'tag': '0-0'}) => {"ansible_loop_var": "item", "changed": true, "cmd": "/home/ssc/qcsd-experiments/workflow/scripts/test-vpn 0 0\n", "delta": "0:00:40.410608", "end": "2023-02-04 09:13:37.979608", "item": {"client_id": 0, "region_id": 0, "tag": "0-0"}, "msg": "non-zero return code", "rc": 4, "start": "2023-02-04 09:12:57.569000", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}

Is this related to the gateway_ip in the ansible/distributed file? How should I set this variable, can I make gateway_ip equal EtherNet ip?

jpcsmith commented 1 year ago

It needs to be a public IP address of the host, so that the client can connect to the wireguard gateway.

ETOjianglinpai commented 1 year ago

I got the public IP address of the host from https://www.whatismypublicip.com, and changed all of them to this IP address image distributed:

localhost   ansible_connection=local ansible_python_interpreter="{{ ansible_playbook_python }}"
frankfurt   ansible_user=root ansible_host=au22
new_york    ansible_user=root ansible_host=au22
bengaluru   ansible_user=root ansible_host=au22
client_runner   ansible_host=au22 exp_path=/home/ssc/qcsd-experiments

[wg_gateways]
frankfurt   region_id=0 gateway_ip=61.239.74.219
new_york    region_id=1 gateway_ip=61.239.74.219
bengaluru   region_id=2 gateway_ip=61.239.74.219

[wg_gateways:vars]
n_clients_per_gateway=12

[wg_clients]
client_runner

local:

localhost ansible_connection=local ansible_python_interpreter="{{ ansible_playbook_python }}"

[wg_gateways]
localhost region_id=0 gateway_ip=61.239.74.219

[wg_gateways:vars]
n_clients_per_gateway=6

[wg_clients]
localhost exp_path=/home/ssc/qcsd-experiments copy_experiment=False

but it still reports errors (The first line error was split) :

failed: [localhost]
(item={'region_id': 0, 'client_id': 0, 'tag': '0-0'}) => 
{"ansible_loop_var": "item", "changed": true, 
"cmd": "/home/ssc/qcsd-experiments/workflow/scripts/test-vpn 0 0\n", "delta": "0:00:40.186401", 
"end": "2023-02-06 09:58:14.693341", 
"item": {"client_id": 0, "region_id": 0, "tag": "0-0"}, "msg": "non-zero return code", 
"rc": 4, "start": "2023-02-06 09:57:34.506940", "stderr": "", 
"stderr_lines": [], "stdout": "", "stdout_lines": []}
failed: [localhost] (item={'region_id': 0, 'client_id': 1, 'tag': '0-1'}) => {"ansible_loop_var": "item", "changed": true, "cmd": "/home/ssc/qcsd-experiments/workflow/scripts/test-vpn 0 1\n", "delta": "0:00:40.187832", "end": "2023-02-06 10:13:41.569648", "item": {"client_id": 1, "region_id": 0, "tag": "0-1"}, "msg": "non-zero return code", "rc": 4, "start": "2023-02-06 10:13:01.381816", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
failed: [localhost] (item={'region_id': 0, 'client_id': 2, 'tag': '0-2'}) => {"ansible_loop_var": "item", "changed": true, "cmd": "/home/ssc/qcsd-experiments/workflow/scripts/test-vpn 0 2\n", "delta": "0:00:40.158226", "end": "2023-02-06 10:14:21.815985", "item": {"client_id": 2, "region_id": 0, "tag": "0-2"}, "msg": "non-zero return code", "rc": 4, "start": "2023-02-06 10:13:41.657759", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
failed: [localhost] (item={'region_id': 0, 'client_id': 3, 'tag': '0-3'}) => {"ansible_loop_var": "item", "changed": true, "cmd": "/home/ssc/qcsd-experiments/workflow/scripts/test-vpn 0 3\n", "delta": "0:00:40.189213", "end": "2023-02-06 10:15:02.093988", "item": {"client_id": 3, "region_id": 0, "tag": "0-3"}, "msg": "non-zero return code", "rc": 4, "start": "2023-02-06 10:14:21.904775", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
failed: [localhost] (item={'region_id': 0, 'client_id': 4, 'tag': '0-4'}) => {"ansible_loop_var": "item", "changed": true, "cmd": "/home/ssc/qcsd-experiments/workflow/scripts/test-vpn 0 4\n", "delta": "0:00:40.180087", "end": "2023-02-06 10:15:42.377015", "item": {"client_id": 4, "region_id": 0, "tag": "0-4"}, "msg": "non-zero return code", "rc": 4, "start": "2023-02-06 10:15:02.196928", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
jpcsmith commented 1 year ago

Do you have one remote host for the gateway or three? If it's one, then use a single wireguard gateway. If that one gateway is located on the localhost, then look at the local, not the distributed config file. If it's three hosts, then I would expect you to have three different public IPs.

On Mon, 6 Feb 2023 at 19:17, ETOjianglinpai @.***> wrote:

I got the public IP address of the host from https://www.whatismypublicip.com, and changed all of them to this IP address [image: image] https://user-images.githubusercontent.com/116773941/217050544-98b267ff-868d-43d4-ae05-08fab312adbf.png distributed:

localhost ansible_connection=local ansible_python_interpreter="{{ ansible_playbook_python }}" frankfurt ansible_user=root ansible_host=au22 new_york ansible_user=root ansible_host=au22 bengaluru ansible_user=root ansible_host=au22 client_runner ansible_host=au22 exp_path=/home/ssc/qcsd-experiments

[wg_gateways] frankfurt region_id=0 gateway_ip=61.239.74.219 new_york region_id=1 gateway_ip=61.239.74.219 bengaluru region_id=2 gateway_ip=61.239.74.219

[wg_gateways:vars] n_clients_per_gateway=12

[wg_clients] client_runner

local:

localhost ansible_connection=local ansible_python_interpreter="{{ ansible_playbook_python }}"

[wg_gateways] localhost region_id=0 gateway_ip=61.239.74.219

[wg_gateways:vars] n_clients_per_gateway=6

[wg_clients] localhost exp_path=/home/ssc/qcsd-experiments copy_experiment=False

but it still reports errors (The first line error was split) :

failed: [localhost] (item={'region_id': 0, 'client_id': 0, 'tag': '0-0'}) => {"ansible_loop_var": "item", "changed": true, "cmd": "/home/ssc/qcsd-experiments/workflow/scripts/test-vpn 0 0\n", "delta": "0:00:40.186401", "end": "2023-02-06 09:58:14.693341", "item": {"client_id": 0, "region_id": 0, "tag": "0-0"}, "msg": "non-zero return code", "rc": 4, "start": "2023-02-06 09:57:34.506940", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []} failed: [localhost] (item={'region_id': 0, 'client_id': 1, 'tag': '0-1'}) => {"ansible_loop_var": "item", "changed": true, "cmd": "/home/ssc/qcsd-experiments/workflow/scripts/test-vpn 0 1\n", "delta": "0:00:40.187832", "end": "2023-02-06 10:13:41.569648", "item": {"client_id": 1, "region_id": 0, "tag": "0-1"}, "msg": "non-zero return code", "rc": 4, "start": "2023-02-06 10:13:01.381816", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []} failed: [localhost] (item={'region_id': 0, 'client_id': 2, 'tag': '0-2'}) => {"ansible_loop_var": "item", "changed": true, "cmd": "/home/ssc/qcsd-experiments/workflow/scripts/test-vpn 0 2\n", "delta": "0:00:40.158226", "end": "2023-02-06 10:14:21.815985", "item": {"client_id": 2, "region_id": 0, "tag": "0-2"}, "msg": "non-zero return code", "rc": 4, "start": "2023-02-06 10:13:41.657759", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []} failed: [localhost] (item={'region_id': 0, 'client_id': 3, 'tag': '0-3'}) => {"ansible_loop_var": "item", "changed": true, "cmd": "/home/ssc/qcsd-experiments/workflow/scripts/test-vpn 0 3\n", "delta": "0:00:40.189213", "end": "2023-02-06 10:15:02.093988", "item": {"client_id": 3, "region_id": 0, "tag": "0-3"}, "msg": "non-zero return code", "rc": 4, "start": "2023-02-06 10:14:21.904775", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []} failed: [localhost] (item={'region_id': 0, 'client_id': 4, 'tag': '0-4'}) => {"ansible_loop_var": "item", "changed": true, "cmd": "/home/ssc/qcsd-experiments/workflow/scripts/test-vpn 0 4\n", "delta": "0:00:40.180087", "end": "2023-02-06 10:15:42.377015", "item": {"client_id": 4, "region_id": 0, "tag": "0-4"}, "msg": "non-zero return code", "rc": 4, "start": "2023-02-06 10:15:02.196928", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}

— Reply to this email directly, view it on GitHub https://github.com/jpcsmith/qcsd-experiments/issues/1#issuecomment-1419543343, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAM4YXC6Q5MVXRB436JHS4TWWE54PANCNFSM6AAAAAAUOAFWKI . You are receiving this because you commented.Message ID: @.***>

ETOjianglinpai commented 1 year ago

Sorry, I still can't configure successfully

Do I need to configure the virtual machine to the bridging mode, and then set the gateway IP to the public IP? To configure local, do you only need the public IP address of the virtual machine? This step has not been successful. I hope to get your guidance

exec docker run "${DOCKER_RUN_ARGS[@]}" --entrypoint wget wg-client -q --spider http://google.com

Due to the problem that the network may not be accessible, I changed the spider website to baidu.com, which also failed.

failed: [localhost]
(item={'region_id': 0, 'client_id': 0, 'tag': '0-0'}) => 
{"ansible_loop_var": "item", "changed": true, 
"cmd": "/home/ssc/qcsd-experiments/workflow/scripts/test-vpn 0 0\n", "delta": "0:00:40.186401", 
"end": "2023-02-06 09:58:14.693341", 
"item": {"client_id": 0, "region_id": 0, "tag": "0-0"}, "msg": "non-zero return code", 
"rc": 4, "start": "2023-02-06 09:57:34.506940", "stderr": "", 
"stderr_lines": [], "stdout": "", "stdout_lines": []}
jpcsmith commented 1 year ago

I cannot tell what the issue with your configuration would be. At that stage however, the docker containers should be created, so you can access a shell in the container and attempt to manually configure the wireguard to see what the configuration needs to be for them to communicate.

ETOjianglinpai commented 1 year ago

Thank you for your help! I have now run Docker and changed the function of demo.smk to:

rule demo__all:
    input:
        "/home/whisperliang/qcsd-experiments/results/plots/demo-plot-0001.png"

And try running snakemake -j 2 --configfile=config/test.yaml demo__all, an error message was generated in/qcsd experiments/results/demo/0001/undefended. log:

Error: TransportError(CryptoError(NssError { name: "SEC_ERROR_INVALID_ARGS", code: -8187, desc: "security library: invalid arguments." }))

May I ask what is the reason for this?