wire-server-deploy icon indicating copy to clipboard operation
wire-server-deploy copied to clipboard

Question: Local testing setup

Open kirillt opened this issue 4 years ago • 1 comments

Today I was trying to build and run wire-server on my local machine. I walked through this guide: https://docs.wire.com/how-to/install/kubernetes.html Option 2 was my choice. I created a "target" container for deployment with root password-less SSH-access.

It looks that the guide assumes the single target machine. But I couldn't pass this step (ran from inside of the docker container with all dependencies):

poetry run ansible-playbook -i hosts.ini kubernetes.yml -vv

The "target" container is debian-slim (I tried alpine as well, but apparently it is not supported). The SSH-access is not a problem, I verified it. The errors are weird and change sometime. Either lock of dpkg, or complaining that it is impossible to gain root privileges (with root SSH-login!).

It feels for me like simultaneous Ansible jobs are conflicting with each other. Is single-node deployment really supported?

kirillt avatar Aug 25 '20 23:08 kirillt

The sequence of steps to reproduce: 1. Run debian-based docker container with ssh accepting root by key (without password). I also installed sudo in the target container, although there is only root user.

For verification I do this:

ssh [email protected] -p 2222 -i ssh/id_ed25519 -o "UserKnownHostsFile /dev/null"

This results in that I get into the container.

2. Preparation steps described in "Option 2" here: https://docs.wire.com/how-to/install/kubernetes.html

File hosts.ini is modified to also contain port number 2222 for SSH.

sed -i 's/X.X.X.X/127.0.0.1 ansible_port=2222/g' hosts.ini

3. Inside of the "deployment" container I do this:

cd wire-server-deploy/ansible/
poetry run ansible-playbook -i hosts.ini kubernetes.yml -vv

This works about 30 seconds and results in errors like this:

fatal: [kubenode03]: FAILED! => {"changed": true, "msg": "non-zero return code", "rc": 100, "stderr": "Shared connection to 127.0.0.1 closed.\r\n", "stderr_lines": ["Shared connection to 127.0.0.1 closed."], "stdout": "\rReading package lists... 0%\r\rReading package lists... 0%\r\rReading package lists... 1%\r\rReading package lists... 57%\r\rReading package lists... 92%\r\rReading package lists... 92%\r\rReading package lists... 99%\r\rReading package lists... 99%\r\rReading package lists... 99%\r\rReading package lists... 99%\r\rReading package lists... Done\r\r\nE: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)\r\nE: Unable to lock directory /var/lib/apt/lists/\r\n", "stdout_lines": ["", "Reading package lists... 0%", "", "Reading package lists... 0%", "", "Reading package lists... 1%", "", "Reading package lists... 57%", "", "Reading package lists... 92%", "", "Reading package lists... 92%", "", "Reading package lists... 99%", "", "Reading package lists... 99%", "", "Reading package lists... 99%", "", "Reading package lists... 99%", "", "Reading package lists... Done", "", "E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)", "E: Unable to lock directory /var/lib/apt/lists/"]}
etcd01                     : ok=4    changed=0    unreachable=0    failed=1   
etcd02                     : ok=4    changed=0    unreachable=0    failed=1   
etcd03                     : ok=4    changed=0    unreachable=0    failed=1   
kubenode01                 : ok=5    changed=1    unreachable=0    failed=0   
kubenode02                 : ok=4    changed=0    unreachable=0    failed=1   
kubenode03                 : ok=4    changed=0    unreachable=0    failed=1   
localhost                  : ok=1    changed=0    unreachable=0    failed=0

Does it mean that parallel jobs overlap? Does it mean I can't deploy to a single machine? The tutorial emphasizes that it is about deployment "on a single virtual machine". Is there a difference if I choose a virtual machine or just a container?

kirillt avatar Aug 26 '20 18:08 kirillt