Installation avec proxy HTTP

Bonjour,

J’ai tenté d’installer Wazo Platform sur un serveur qui doit passer par un proxy pour accéder à Internet.

En utilisant export http_proxy="http://PROXY_IP:PROXY_PORT"; export https_proxy="http://PROXY_IP:PROXY_PORT", le git clone, et l’installation des paquets s’effectue correctement.
Néanmoins, l’exécution du ansible-playbook -i inventories/uc-engine uc-engine.yml bloque sur la configuration de Wazo-Auth, lors de la tâche “Create service users with wazo-auth-keys” :

TASK [Install Wazo auth] *****************************************************************************************************************************************************************************************************************

TASK [wazo-auth : Install wazo-auth] *****************************************************************************************************************************************************************************************************
ok: [localhost]

TASK [wazo-auth : Create default wazo-auth database preconfiguration] ********************************************************************************************************************************************************************
changed: [localhost]

TASK [wazo-auth : Copy wazo-auth database preconfiguration if needed] ********************************************************************************************************************************************************************
skipping: [localhost]

TASK [wazo-auth : Reset database options for wazo-auth package] **************************************************************************************************************************************************************************
changed: [localhost]

TASK [wazo-auth : Reconfigure database options for wazo-auth package] ********************************************************************************************************************************************************************
changed: [localhost]

TASK [wazo-auth : Initialize wazo-auth database] *****************************************************************************************************************************************************************************************
changed: [localhost]

TASK [engine-api-init : Create an index.html for the home page] **************************************************************************************************************************************************************************
skipping: [localhost]

TASK [engine-api-init : Install wazo-auth-keys] ******************************************************************************************************************************************************************************************
ok: [localhost]

TASK [engine-api-init : Create service users with wazo-auth-keys] ************************************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"changed": true, "cmd": ["wazo-auth-keys", "service", "update"], "delta": "0:00:01.086784", "end": "2023-11-09 10:30:54.496200", "msg": "non-zero return code", "rc": 1, "start": "2023-11-09 10:30:53.409416", "stderr": "503 Server Error: Service Unavailable for url: http://localhost:9497/0.1/token", "stderr_lines": ["503 Server Error: Service Unavailable for url: http://localhost:9497/0.1/token"], "stdout": "", "stdout_lines": []}

PLAY RECAP *******************************************************************************************************************************************************************************************************************************
localhost                  : ok=102  changed=11   unreachable=0    failed=1    skipped=52   rescued=0    ignored=0   

J’ai ceci dans /var/log/wazo-auth.log :

2023-11-09 10:30:53,852 [6050] (INFO) (wazo-auth): request: POST http://localhost:9497/0.1/token {'Host': 'localhost:9497', 'Accept-Encoding': 'identity', 'Connection': 'close', 'User-Agent': 'Wazo Python auth client', 'Accept': 'application/json', 'Content-Type': 'application/json', 'Content-Length': '21'} with data {"expiration": 21600}
2023-11-09 10:30:54,542 [6050] (INFO) (wazo_auth.plugins.http.tokens.http): Failed login: unknown username or password for login  from 127.0.0.1 using agent "Wazo Python auth client"
2023-11-09 10:30:54,543 [6050] (INFO) (wazo-auth): response to 127.0.0.1 in 0.69s: POST http://localhost:9497/0.1/token 401

Enfin, après l’exit d’ansible, le port 9497 est en écoute et répond au telnet…

Testé en parallèle : si j’effectue l’installation sur une machine d’un autre infra, qui a un accès direct à Internet, le problème ne se présente pas.

Merci d’avance pour votre aide !

Salut,

As tu lu cette doc https://wazo-platform.org/uc-doc/system/proxy voir si cela peut t’aider?

Même si j’ai l’impression qu’on a pas documenté ni testé l’installation avec ansible derrière un proxy.

Sylvain

Salut,

je n’ai jamais essayé, mais ça a des chances de te débloquer: essaye l’installation avec la variable suivante, en plus des variables que tu as déjà configurées:

NO_PROXY=localhost,127.0.0.1,127.0.1.1

Sébastien

Bonjour et merci pour vos réponses,

J’ai ajouté la conf de proxy pour les différents services en suivant la piste de @quintana mais ça n’a rien donné de mieux.

En renseignant la variable NO_PROXY en plus des précédentes comme l’a indiqué @sduthil, l’installation va un peu plus loin, mais j’obtiens une erreur 500 sur le nginx uc-engine :

TASK [uc-engine : Install wazo-platform] *************************************************************************************************************************************************************************************************
ok: [localhost]

TASK [uc-engine : Install wazo-setupd] ***************************************************************************************************************************************************************************************************
ok: [localhost]

TASK [uc-engine : Ensure wazo-setupd has been started with last config] ******************************************************************************************************************************************************************
changed: [localhost]

TASK [uc-engine : Ensure that asterisk has been started with wazo-confgend config] *******************************************************************************************************************************************************
changed: [localhost]

TASK [uc-engine : Change Wazo distribution for later upgrades] ***************************************************************************************************************************************************************************
changed: [localhost]

TASK [uc-engine : Remove custom GPG key used for installation] ***************************************************************************************************************************************************************************
changed: [localhost]

TASK [uc-engine : Remove empty keyring file used for installation] ***********************************************************************************************************************************************************************
changed: [localhost] => (item=/etc/apt/trusted.gpg.d/wazo-keyring-installation.gpg)
changed: [localhost] => (item=/etc/apt/trusted.gpg.d/wazo-keyring-installation.gpg~)

TASK [uc-engine : Remove custom repository used for installation] ************************************************************************************************************************************************************************
skipping: [localhost]

TASK [uc-engine : Add custom repository for later upgrades] ******************************************************************************************************************************************************************************
skipping: [localhost]

TASK [uc-engine : Ensure dbus is started] ************************************************************************************************************************************************************************************************
ok: [localhost]

TASK [uc-engine : Setup engine] **********************************************************************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"access_control_allow_origin": "*", "changed": false, "connection": "close", "content_length": "37", "content_type": "application/json", "date": "Fri, 10 Nov 2023 14:21:02 GMT", "elapsed": 0, "json": {"message": "Internal Server Error"}, "msg": "Status code was 500 and not [201]: HTTP Error 500: INTERNAL SERVER ERROR", "redirected": false, "server": "nginx/1.18.0", "status": 500, "url": "https://localhost:443/api/setupd/1.0/setup"}

PLAY RECAP *******************************************************************************************************************************************************************************************************************************
localhost                  : ok=119  changed=22   unreachable=0    failed=1    skipped=55   rescued=0    ignored=0

Régis

salut régis,

il faut bien modifier chaque fichier de conf comme détaillé ici:

Et cela en plus de la config APT et de tes exports.

Regarde bien tout en bas de la page, et tiens nous au courant !

Bonjour @julienfr

C’est la même doc que Sylvain m’a indiqué et que j’ai suivi.
Dans le doute, j’ai relancé une installation from scratch il y a quelques minutes, mais j’arrive au même stade que mon précédent post avec la même erreur.

Si cela peut aider, voici le fichier complet de /var/log/wazo-setupd.log à l’installation, après échec :

2023-11-14 17:09:30,984 [35021] (INFO) (wazo_setupd.controller): wazo-setupd starting...
2023-11-14 17:09:31,200 [35021] (WARNING) (wazo_setupd.controller): Stopping wazo-setupd: SIGTERM
2023-11-14 17:11:01,955 [35697] (INFO) (wazo_setupd.controller): wazo-setupd starting...
2023-11-14 17:11:08,459 [35697] (INFO) (wazo-setupd): request: POST http://localhost:443/1.0/setup {'Host': 'localhost:443', 'X-Script-Name': '/api/setupd', 'X-Forwarded-For': '127.0.0.1', 'X-Forwarded-Proto': 'https', 'Connection': 'close', 'Accept-Encoding': 'identity', 'User-Agent': 'ansible-httpget', 'Content-Type': 'application/json', 'Content-Length': '136'} with data {"engine_internal_address": "localhost", "engine_language": "en_US", "engine_license": true, "engine_password": "*************"}
2023-11-14 17:13:31,068 [35697] (ERROR) (wazo-setupd): Exception on /1.0/setup [POST]
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/lib/python3/dist-packages/flask_restful/__init__.py", line 468, in wrapper
    resp = resource(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/flask/views.py", line 89, in view
    return self.dispatch_request(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/flask_restful/__init__.py", line 583, in dispatch_request
    resp = meth(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/xivo/rest_api_helpers.py", line 41, in wrapper
    return func(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/xivo/mallow_helpers.py", line 31, in wrapper
    return func(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/wazo_setupd/plugins/setup/http.py", line 18, in post
    self.service.setup(setup_infos)
  File "/usr/lib/python3/dist-packages/wazo_setupd/plugins/setup/services.py", line 32, in setup
    self.setup_without_nestbox(setup_infos)
  File "/usr/lib/python3/dist-packages/wazo_setupd/plugins/setup/services.py", line 80, in setup_without_nestbox
    self.post_confd_wizard(
  File "/usr/lib/python3/dist-packages/wazo_setupd/plugins/setup/services.py", line 174, in post_confd_wizard
    c.wizard.create(wizard)
  File "/usr/lib/python3/dist-packages/wazo_confd_client/commands/wizard.py", line 13, in create
    response = self.session.post(url, body, timeout=timeout)
  File "/usr/lib/python3/dist-packages/wazo_confd_client/session.py", line 64, in post
    self.check_response(response, check_response)
  File "/usr/lib/python3/dist-packages/wazo_confd_client/session.py", line 31, in check_response
    response.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 943, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 500 Server Error: Unexpected error: sysconfd error: status 500 - {"code":500,"message":"dhcpd-update command returned 1"} for url: http://localhost:9486/1.1/wizard
2023-11-14 17:13:31,070 [35697] (INFO) (wazo-setupd): response to 127.0.0.1 in 142.61s: POST http://localhost:443/1.0/setup 500

tu as bien mis les infos du proxy dans
/etc/xivo/dhcpd-update.conf
??

cheers

Hello,

Perso meme en ayant déclaré toute les variables d’environnement pour le proxy , j’ai du modifié le fichier d’ une tache ansible pour qu’il gere le proxy et que ça arrive au bout de l’install car à priori ansible ne prenait pas en compte correctement les variables d’environnement concernant le proxy pour toute les taches!!! J’ai juste eu besoin de modifier une tache!!!

Ansible,Setting the Environment (and Working With Proxies)

Regis meme avec la bidouille de ansible pour le proxy , j’en arrivais au meme point que toi.
La solution en root tu fais un wazo-auth-bootstrap complete , en suite tu va dans /root/.config/wazo ou quelque chose comme ça , tu ouvre le fichier 50xxxWazo ou un truc du genre et tu devrais voir des identifiants, tu les utilise pour te connecter à ton interface web et ensuite une fois connecté tu vas dans credentials , tu créé un nouveau user, tu l’ajoute dans le groupe admin et la police admin et yalla. A moins que je n’ai pas compris ton soucis!!! lol :smiley:

Bonjour à tous,

J’ai refait l’install from scratch à nouveau, en précisant tous les fichiers de conf proxy (même ceux dont je pensais ne pas avoir besoin) et l’installation s’est passée correctement cette fois-ci !
J’ai eu du mal à accéder à l’interface web, et j’ai fini par désactiver ufw temporairement et j’ai pu déjà enregistrer une ligne SIP :smiley:

Merci pour votre aide !

2 Likes

Solution en résumé :

  1. Configuration de tous les fichiers indiqués dans https://wazo-platform.org/uc-doc/system/proxy

  2. Utilisation de variables :

export http_proxy="http://PROXY_IP:PROXY_PORT"
export https_proxy="http://PROXY_IP:PROXY_PORT"
export NO_PROXY=localhost,127.0.0.1,127.0.1.1
  1. Désactivation ufw
    /!\ temporaire, je vais rechercher ce que je dois autoriser /!\
ufw disable 
  1. Suivi de la doc d’installation : https://wazo-platform.org/uc-doc/installation/install-system
1 Like