Browse Source

read & save onion service address in variable

Fabian Peter Hammerle 3 years ago
parent
commit
b5bb75948e
2 changed files with 20 additions and 2 deletions
  1. 7 1
      README.md
  2. 13 1
      tasks/main.yml

+ 7 - 1
README.md

@@ -12,6 +12,12 @@ onion_service_network_name: webserver
 
 ## Optional Variables
 
-```
+```yaml
 onion_service_container_image: docker.io/fphammerle/onion-service@sha256:788c7a8065cea26d7a029449a49f7c41143a35513617b9ff8db8d67687e87c5b
 ```
+
+## Returned Variables
+
+```
+onion_service_address
+```

+ 13 - 1
tasks/main.yml

@@ -1,4 +1,4 @@
-- name: onion service container
+- name: 'onion service container :{{ onion_service_virtual_port }} -> {{ onion_service_target }}'
   docker_container:
     name: '{{ onion_service_container_name }}'
     image: '{{ onion_service_container_image }}'
@@ -30,3 +30,15 @@
     memory: 128M
     restart_policy: unless-stopped
     state: started
+  register: _container
+- name: wait for onion service address
+  wait_for:
+    path: "{{ (_container.container.Mounts | items2dict(key_name='Destination', value_name='Source'))['/onion-service'] }}/hostname"
+  register: _address_file
+- name: read onion service address
+  slurp:
+    src: '{{ _address_file.path }}'
+  register: _address_base64
+- name: decode onion service address
+  set_fact:
+    onion_service_address: '{{ _address_base64.content | b64decode | trim }}'