matrix-docker-ansible-deploy
matrix-docker-ansible-deploy copied to clipboard
python3-apt must be installed and visible from /usr/bin/python.
Playbook Configuration:
My vars.yml
file looks like this:
---
# The bare domain name which represents your Matrix identity.
# Matrix user ids for your server will be of the form (`@user:<matrix-domain>`).
#
# Note: this playbook does not touch the server referenced here.
# Installation happens on another server ("matrix.<matrix-domain>").
#
# If you've deployed using the wrong domain, you'll have to run the Uninstalling step,
# because you can't change the Domain after deployment.
#
# Example value: example.com
matrix_domain: [redacted]
# The Matrix homeserver software to install.
# See:
# - `roles/custom/matrix-base/defaults/main.yml` for valid options
# - the `docs/configuring-playbook-IMPLEMENTATION_NAME.md` documentation page, if one is available for your implementation choice
matrix_homeserver_implementation: synapse
# A secret used as a base, for generating various other secrets.
# You can put any string here, but generating a strong one is preferred (e.g. `pwgen -s 64 1`).
matrix_homeserver_generic_secret_key: '[redacted]'
# This is something which is provided to Let's Encrypt when retrieving SSL certificates for domains.
#
# In case SSL renewal fails at some point, you'll also get an email notification there.
#
# If you decide to use another method for managing SSL certificates (different than the default Let's Encrypt),
# you won't be required to define this variable (see `docs/configuring-playbook-ssl-certificates.md`).
#
# Example value: [email protected]
matrix_ssl_lets_encrypt_support_email: '[redacted]'
# A Postgres password to use for the superuser Postgres user (called `matrix` by default).
#
# The playbook creates additional Postgres users and databases (one for each enabled service)
# using this superuser account.
devture_postgres_connection_password: '[redacted]'
Matrix Server:
- OS: Ubuntu 18.04
- Architecture amd64
Ansible: If your problem appears to be with Ansible, tell us:
- where you run Ansible -- On the matrix server itself
- what version of Ansible you're running (see
ansible --version
)
ansible [core 2.14.0]
config file = None
configured module search path = ['/home/taubin/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /home/taubin/.local/lib/python3.10/site-packages/ansible
ansible collection location = /home/taubin/.ansible/collections:/usr/share/ansible/collections
executable location = /home/taubin/.local/bin/ansible
python version = 3.10.8 (main, Oct 12 2022, 19:14:09) [GCC 7.5.0] (/usr/bin/python3)
jinja version = 3.1.2
libyaml = True
Problem description:
Running the playbook to upgrade, I receive the following error:
python3-apt must be installed and visible from /usr/bin/python.
Full output:
~/matrix-docker-ansible-deploy$ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start
PLAY [Set up a Matrix server] ********************************************************************************************************************************************
TASK [Gathering Facts] ***************************************************************************************************************************************************
ok: [matrix.[redacted]]
TASK [custom/matrix_playbook_migration : ansible.builtin.include_tasks] **************************************************************************************************
included: /home/taubin/matrix-docker-ansible-deploy/roles/custom/matrix_playbook_migration/tasks/validate_config.yml for matrix.[redacted]
TASK [custom/matrix_playbook_migration : (Deprecation) Catch and report renamed Matrix playbook settings] ****************************************************************
skipping: [matrix.[redacted]] => (item={'old': 'matrix_vars_yml_snapshotting_enabled', 'new': 'devture_playbook_state_preserver_vars_preservation_enabled'})
skipping: [matrix.[redacted]] => (item={'old': 'matrix_vars_yml_snapshotting_src', 'new': 'devture_playbook_state_preserver_vars_preservation_src'})
skipping: [matrix.[redacted]] => (item={'old': 'matrix_playbook_commit_hash_preservation_enabled', 'new': 'devture_playbook_state_preserver_commit_hash_preservation_enabled'})
skipping: [matrix.[redacted]] => (item={'old': 'matrix_ntpd_package', 'new': 'devture_timesync_ntpd_package'})
skipping: [matrix.[redacted]] => (item={'old': 'matrix_ntpd_service', 'new': 'devture_timesync_ntpd_service'})
skipping: [matrix.[redacted]] => (item={'old': 'matrix_systemd_unit_home_path', 'new': 'devture_systemd_docker_base_systemd_unit_home_path'})
skipping: [matrix.[redacted]] => (item={'old': 'matrix_systemd_path', 'new': 'devture_systemd_docker_base_systemd_path'})
skipping: [matrix.[redacted]] => (item={'old': 'matrix_host_command_docker', 'new': 'devture_systemd_docker_base_host_command_docker'})
skipping: [matrix.[redacted]] => (item={'old': 'matrix_host_command_sh', 'new': 'devture_systemd_docker_base_host_command_sh'})
skipping: [matrix.[redacted]] => (item={'old': 'matrix_host_command_systemctl', 'new': 'devture_systemd_docker_base_host_command_systemctl'})
skipping: [matrix.[redacted]] => (item={'old': 'matrix_container_retries_count', 'new': 'devture_playbook_help_container_retries_count'})
skipping: [matrix.[redacted]] => (item={'old': 'matrix_container_retries_delay', 'new': 'devture_playbook_help_container_retries_delay'})
skipping: [matrix.[redacted]] => (item={'old': 'matrix_geturl_retries_count', 'new': 'devture_playbook_help_geturl_retries_count'})
skipping: [matrix.[redacted]] => (item={'old': 'matrix_geturl_retries_delay', 'new': 'devture_playbook_help_geturl_retries_delay'})
skipping: [matrix.[redacted]] => (item={'old': 'matrix_nginx_proxy_synapse_cache_path', 'new': 'matrix_synapse_reverse_proxy_companion_synapse_cache_path'})
skipping: [matrix.[redacted]] => (item={'old': 'matrix_nginx_proxy_synapse_cache_enabled', 'new': 'matrix_synapse_reverse_proxy_companion_synapse_cache_enabled'})
skipping: [matrix.[redacted]] => (item={'old': 'matrix_docker_installation_enabled', 'new': 'matrix_playbook_docker_installation_enabled'})
skipping: [matrix.[redacted]] => (item={'old': 'matrix_docker_package_name', 'new': '<Not applicable. Docker is installed using https://github.com/geerlingguy/ansible-role-docker now>'})
skipping: [matrix.[redacted]] => (item={'old': 'matrix_systemd_services_list', 'new': 'devture_systemd_service_manager_services_list_additional'})
skipping: [matrix.[redacted]] => (item={'old': 'matrix_common_after_systemd_service_start_wait_for_timeout_seconds', 'new': 'devture_systemd_service_manager_up_verification_delay_seconds'})
skipping: [matrix.[redacted]] => (item={'old': 'matrix_systemd_services_autostart_enabled', 'new': 'devture_systemd_service_manager_services_autostart_enabled'})
skipping: [matrix.[redacted]]
TASK [custom/matrix_playbook_migration : (Deprecation) Catch and report matrix_postgres variables] ***********************************************************************
skipping: [matrix.[redacted]]
TASK [custom/matrix_playbook_migration : ansible.builtin.include_tasks] **************************************************************************************************
included: /home/taubin/matrix-docker-ansible-deploy/roles/custom/matrix_playbook_migration/tasks/cleanup_usr_local_bin.yml for matrix.[redacted]
TASK [custom/matrix_playbook_migration : Find leftover matrix scripts in /usr/local/bin] *********************************************************************************
ok: [matrix.[redacted]]
TASK [custom/matrix_playbook_migration : Ensure /usr/local/bin does not contain matrix scripts] **************************************************************************
skipping: [matrix.[redacted]]
TASK [galaxy/geerlingguy.docker : Load OS-specific vars.] ****************************************************************************************************************
ok: [matrix.[redacted]]
TASK [galaxy/geerlingguy.docker : include_tasks] *************************************************************************************************************************
skipping: [matrix.[redacted]]
TASK [galaxy/geerlingguy.docker : include_tasks] *************************************************************************************************************************
included: /home/taubin/matrix-docker-ansible-deploy/roles/galaxy/geerlingguy.docker/tasks/setup-Debian.yml for matrix.[redacted]
TASK [galaxy/geerlingguy.docker : Ensure old versions of Docker are not installed.] **************************************************************************************
[WARNING]: Updating cache and auto-installing missing dependency: python3-apt
fatal: [matrix.[redacted]]: FAILED! => changed=false
msg: python3-apt must be installed and visible from /usr/bin/python.
PLAY RECAP ***************************************************************************************************************************************************************
matrix.[redacted] : ok=6 changed=0 unreachable=0 failed=1 skipped=4 rescued=0 ignored=0
My hosts file is below:
# We explicitly ask for your server's external IP address, because the same value is used for configuring Coturn.
# If you'd rather use a local IP here, make sure to set up `matrix_coturn_turn_external_ip_address`.
#
# To connect using a non-root user (and elevate to root with sudo later),
# replace `ansible_ssh_user=root` with something like this: `ansible_ssh_user=username become=true become_user=root`
#
# For improved Ansible performance, SSH pipelining is enabled by default in `ansible.cfg`.
# If this causes SSH connection troubles, disable it by adding `ansible_ssh_pipelining=False`
# to the host line below or by adding `ansible_ssh_pipelining: False` to your variables file.
#
# If you're running this Ansible playbook on the same server as the one you're installing to,
# consider adding an additional `ansible_connection=local` argument to the host line below.
#
# Ansible may fail to discover which Python interpreter to use on the host for some distros (like Ubuntu 20.04).
# You may sometimes need to explicitly add the argument `ansible_python_interpreter=/usr/bin/python3`
# to the host line below.
[matrix_servers]
matrix.[redacted] ansible_host=[redacted] ansible_ssh_user=[redacted] become=true become_user=root ansible_connection=local ansible_python_interpreter=/usr/bin/python
Python3-apt is installed:
sudo apt-get install python3-apt --reinstall
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded.
Need to get 0 B/149 kB of archives.
After this operation, 0 B of additional disk space will be used.
(Reading database ... 105589 files and directories currently installed.)
Preparing to unpack .../python3-apt_1.6.5ubuntu0.7_amd64.deb ...
Unpacking python3-apt (1.6.5ubuntu0.7) over (1.6.5ubuntu0.7) ...
Setting up python3-apt (1.6.5ubuntu0.7) ...
/usr/lib/python3.10/subprocess.py:955: RuntimeWarning: line buffering (buffering=1) isn't supported in binary mode, the default buffer size will be used
self.stdin = io.open(p2cwrite, 'wb', bufsize)
Describe what you're doing, what you expect to happen and what happens instead here. Tell us what you've tried and what you're aiming to achieve.
I am attempting to upgrade my installation using the instructions here
I haven't upgraded in a while so it's entirely possible it's something dumb I'm missing and if so I sincerely apologize. I have tried googling to fix this on my own, however the answers I've found have not worked. Including reinstalling pip, reinstalling apt and adding a symlink: sudo cp apt_pkg.cpython-34m-i386-linux-gnu.so apt_pkg.so
Additional context Add any other context about the problem here.
Reading here may help: https://stackoverflow.com/questions/51622712/ansible-requires-python-apt-but-its-already-installed
You can try ansible_python_interpreter=/usr/bin/python3
in your hosts
file, instead of using /usr/bin/python
.
You can SSH into the server and see what /usr/bin/python --version
and what /usr/bin/python3 --version
say.
Thank you for that, it's at least gotten me a step farther:
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start
PLAY [Set up a Matrix server] ********************************************************************************************************************************************
TASK [Gathering Facts] ***************************************************************************************************************************************************
fatal: [matrix.[redacted]]: FAILED! => changed=false
ansible_facts: {}
failed_modules:
ansible.legacy.setup:
failed: true
module_stderr: |-
sudo: a password is required
module_stdout: ''
msg: |-
MODULE FAILURE
See stdout/stderr for the exact error
rc: 1
msg: |-
The following modules failed to execute: ansible.legacy.setup
PLAY RECAP ***************************************************************************************************************************************************************
matrix.[redacted] : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
Removed become=true user=sudo
Unfortunately I'm running into the same error after changing /usr/bin/python to /usr/bin/python3
I'm getting this same error after an update. Did you manage to fix it somehow? The package is installed and visible from python3, making this very confusing.