From a9eddb22a43e97ae95fb85b34e007099cd8bc03b Mon Sep 17 00:00:00 2001 From: TC1977 <37350377+TC1977@users.noreply.github.com> Date: Sun, 19 May 2019 22:47:24 -0400 Subject: [PATCH 1/4] Pick server to update from menu --- users.yml | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/users.yml b/users.yml index 9d2b21e3..484e362c 100644 --- a/users.yml +++ b/users.yml @@ -7,9 +7,22 @@ tasks: - block: + - name: Get list of installed servers + shell: ls configs/ + register: _directory_list + + - name: Build list of installed servers + set_fact: + server_list: "{{ _directory_list.stdout_lines|replace('algo.pem.pub','')|replace('algo.pem','') }}" + - name: Server address prompt pause: - prompt: "Enter the IP address of your server: (or use localhost for local installation)" + prompt: | + Select the server to update user list below: + {% for r in server_list %} + {% if r %}{{ loop.index }}. {{ r }} + {% endif -%} + {% endfor %} register: _server when: server is undefined @@ -17,7 +30,7 @@ set_fact: algo_server: >- {% if server is defined %}{{ server }} - {%- elif _server.user_input %}{{ _server.user_input }} + {%- elif _server.user_input %}{{ server_list[_server.user_input | int -1 ] }} {%- else %}omit{% endif %} - name: Import host specific variables From cc4b51bf986968c7102919346b3fe52b95b63f02 Mon Sep 17 00:00:00 2001 From: TC1977 <37350377+TC1977@users.noreply.github.com> Date: Sun, 19 May 2019 23:01:41 -0400 Subject: [PATCH 2/4] Command instead of shell --- users.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/users.yml b/users.yml index 484e362c..49eeb113 100644 --- a/users.yml +++ b/users.yml @@ -8,7 +8,7 @@ tasks: - block: - name: Get list of installed servers - shell: ls configs/ + command: ls configs/ register: _directory_list - name: Build list of installed servers From caee2bfa12cb5adef78155e27b1b745a4ad172eb Mon Sep 17 00:00:00 2001 From: TC1977 <37350377+TC1977@users.noreply.github.com> Date: Mon, 20 May 2019 10:30:44 -0400 Subject: [PATCH 3/4] Move to find module Switched to the find module, and made the whole block dependent on server being undefined. --- users.yml | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/users.yml b/users.yml index 49eeb113..7689c191 100644 --- a/users.yml +++ b/users.yml @@ -8,29 +8,35 @@ tasks: - block: - name: Get list of installed servers - command: ls configs/ - register: _directory_list + find: + paths: configs/ + depth: 2 + recurse: true + hidden: true + patterns: ".config.yml" + register: _configs_list - name: Build list of installed servers set_fact: - server_list: "{{ _directory_list.stdout_lines|replace('algo.pem.pub','')|replace('algo.pem','') }}" + server_list: "{% if server_list is defined %}{{ server_list }},{% endif %}{{ item.path|replace('configs/','')|replace('/.config.yml','') }}" + with_items: "{{ _configs_list.files }}" - name: Server address prompt pause: prompt: | Select the server to update user list below: - {% for r in server_list %} - {% if r %}{{ loop.index }}. {{ r }} - {% endif -%} + {% for r in server_list.split(',') %} + {{ loop.index }}. {{ r }} {% endfor %} register: _server - when: server is undefined + when: server is undefined + - block: - name: Set facts based on the input set_fact: algo_server: >- {% if server is defined %}{{ server }} - {%- elif _server.user_input %}{{ server_list[_server.user_input | int -1 ] }} + {%- elif _server.user_input %}{{ server_list.split(',')[_server.user_input | int -1 ] }} {%- else %}omit{% endif %} - name: Import host specific variables From a623f9593ba0cf190949df5d98b07d745c31a4e2 Mon Sep 17 00:00:00 2001 From: TC1977 <37350377+TC1977@users.noreply.github.com> Date: Mon, 20 May 2019 10:36:22 -0400 Subject: [PATCH 4/4] Change names --- users.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/users.yml b/users.yml index 7689c191..b346fc1f 100644 --- a/users.yml +++ b/users.yml @@ -7,7 +7,7 @@ tasks: - block: - - name: Get list of installed servers + - name: Get list of installed config files find: paths: configs/ depth: 2 @@ -16,7 +16,7 @@ patterns: ".config.yml" register: _configs_list - - name: Build list of installed servers + - name: Build string of installed servers set_fact: server_list: "{% if server_list is defined %}{{ server_list }},{% endif %}{{ item.path|replace('configs/','')|replace('/.config.yml','') }}" with_items: "{{ _configs_list.files }}"