OpenSSHを使用すると、socksプロキシを使用して暗号化されたトンネルとして機能できます。これは、ansibleのopenstackモジュールに使用できます。ただし、ansibleのドキュメントには、HTTP/HTTPS以外のプロキシの使用方法については記載されていません。
最初に構成 OpenSSH socks tunnel :
~/.ssh/config
に次のようなものを追加します。
# 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
次に、次のコマンドでHorizonダッシュボードにアクセスできることをテストします。
ALL_PROXY=socks5h://localhost:65432 curl -vi 10.0.0.107:80/dashboard
次の内容で~/clouds.yaml
ファイルを作成します。
clouds:
my_stack:
auth:
auth_url: http://10.0.0.107:5000/v2.0
project_name: myproject
username: admin
password: XXXXXX
region_name: ""
テスト:
ALL_PROXY="socks5h://localhost:65432" openstack --os-cloud my_stack server list
次の内容でopenstack_test.yamlファイルを作成します。
---
- 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:
環境変数ALL_PROXY
をsocks5h://localhost:65432
に設定する必要があります。この変数は、リモートhttpサービスに接続しているほとんどのansibleモジュールで使用されるlibcurlによって使用されます。詳細については、 https://curl.haxx.se/libcurl/c/libcurl-env.html および https://curl.haxx.se/libcurl/c/ CURLOPT_SOCKS_PROXY.html