3 votos

Cómo utilizar ansible openstack módulos con un ssh proxy socks

OpenSSH permite actuar como un túnel encriptado con un proxy socks. Esto puede ser usado para openstack módulos en ansible. Sin embargo, el ansible la documentación no menciona cómo utilizar cualquier otro proxy de HTTP/HTTPS.

2voto

jcollum Puntos 10236

socks proxy

Lo primero es configurar OpenSSH calcetines túnel:

Agregar en ~/.ssh/config algo como:

# Physical host
Host Dell-em1
    User myuser
    HostName 192.168.x.x
    ForwardAgent yes

Host undercloud-0
    User stack
    HostName undercloud-0
    ProxyJump Dell-em1
    IdentityFile /home/mvutcovi/infrared/.workspaces/workspace_2018-02-14_18-24-58/id_rsa

Host controller-0
    User heat-admin
    HostName 192.168.24.13
    ProxyJump Dell-em1
    IdentityFile /home/mvutcovi/infrared/.workspaces/workspace_2018-02-14_18-24-58/id_rsa
    DynamicForward localhost:65432

Ahora prueba a la que puede acceder el Horizonte panel de control con:

ALL_PROXY=socks5h://localhost:65432 curl -vi 10.0.0.107:80/dashboard

openstack de configuración de cliente - nubes.yml

Crear ~/clouds.yaml archivo con el siguiente contenido:

clouds:
  my_stack:
    auth:
      auth_url: http://10.0.0.107:5000/v2.0
      project_name: myproject
      username: admin
      password: XXXXXX
    region_name: ""

Prueba con:

ALL_PROXY="socks5h://localhost:65432" openstack --os-cloud my_stack server list

ansible

Crear un openstack_test.yaml archivo con el siguiente contenido:

---
- hosts: localhost
  gather_facts: no

  tasks:
    - name: Upload CentOS7 iso image
      os_image:
        name: centos7
        cloud: "my_cloud"
        container_format: bare
        disk_format: iso
        filename: /path_to_local_file/CentOS-7-x86_64-DVD-1708.iso
        properties:
          cpu_arch: x86_64
          distro: redhat
      environment:
        ALL_PROXY: "socks5h://localhost:65432"
      when: false
# vim:et:sw=2:ts=2:sts=2:

La variable de entorno ALL_PROXY necesario socks5h://localhost:65432. Esta variable es utilizada por libcurl que es utilizado por la mayoría de ansible módulos que se conectan a http remoto de servicios. Para más detalles, ver: https://curl.haxx.se/libcurl/c/libcurl-env.html y https://curl.haxx.se/libcurl/c/CURLOPT_SOCKS_PROXY.html

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: