Я работал над игрой, чтобы создать виртуальный сервер, и делаю это, задавая пользователю несколько вопросов, чтобы собрать требования к конфигурации.
Я хотел бы выполнить некоторые предварительные проверки, чтобы показать, что определенные свойства виртуального сервера существуют, я смог обработать все свойства за исключением профиля.
Когда вы запускаете «list ltm profile», вам нужно указать протокол, затем имя профиля, например, «list ltm profile tcp tcp». Проверка одного профиля LTM - это хорошо, но у меня возникает проблема, когда вам нужно проверить несколько профилей.
Есть ли способ, которым я мог бы зациклить свой вопрос и передать введенные пользователем данные в проверку? Допустим, пользователь хочет проверить следующие профили:
list ltm profile http http
list ltm profile tcp tcp
Вот вопрос, заданный:
- name: "vs_profile_type"
prompt: "enter the profile(s) to run your pre-checks against"
private: no
А вот то, что у меня есть для предварительной проверки части игры:
- name: Pre-check
bigip_command:
server: "{{ inventory_hostname }}"
user: "{{ remote_username }}"
password: "{{ remote_passwd }}"
commands:
- "tmsh list sys global-settings hostname"
- "tmsh show sys failover"
- "tmsh show cm sync-status"
- "tmsh list ltm virtual {{ vs_name }}"
- "tmsh list ltm profile {{ vs_profile_type }}"
- "tmsh list ltm pool {{ vs_pool }}"
- "tmsh list ltm rule {{ vs_rule }}"
warn: no
validate_certs: no
delegate_to: localhost
when: "'active' in Active_LTM['stdout'][0]"
register: Active_LTM_Pre_Checks
Я также смотрел на учет того факта, что пользователь может не захотеть профиль, поэтому, если он нажмет ввод, мне нужно пропустить проверку «list ltm profile xxx xxx». В другом посте мне помогли это сделать, но при переработке синтаксиса для этого экземпляра я не мог заставить его работать; Есть идеи, что может быть не так с приведенным ниже синтаксисом?
"tmsh list ltm profile {{ '{' + vs_profile_type + '}' if vs_profile_type else '' }} {{ '{' + vs_profile + '}' if vs_profile else '' }}"