gpt4 book ai didi

validation - 使用 ansible 的期望变量进行验证

转载 作者:行者123 更新时间:2023-12-03 19:54:06 24 4
gpt4 key购买 nike

我正在使用 ansible 在机器上自动部署项目。在一种情况下,我使用 ansible 的 expect选项。

我有我的:

# initdb.yml

- hosts: all
vars_prompt:
- name: "username"
prompt: "Username"
private: no
- name: "email"
prompt: "Email"
private: no
- name: "password"
prompt: "Password"
private: yes
roles:
- initdb

并在:
# roles/.../main.yml

- expect:
echo: yes
command: 'env/bin/python manage.py createsuperuser'
timeout: 5
responses:
'Username .*': '{{ username }}'
'Email .*': '{{ email }}'
'Password': '{{ password }}'
'Password (again)': '{{ password }}'
args:
chdir: '{{ repo.path }}'
tags:
- superuser

它用于在应用 django init 迁移后创建 super 用户。

现在让我们进入正题 :

当我运行它并且有人会输入例如太短的密码时,整个过程都会挂起,我必须使用 tags 再次运行它选项。

问题 :

有没有办法将验证附加到 ansible 的期望中,它只会在控制台中提示它的值不正确并强制用户输入正确的值?

最佳答案

不,expect模块无法为您进行验证。
您应该避免在您的剧本中进行任何交互。
如果您需要验证参数,请在剧本的开头使用 assert 手动进行:

- hosts: all
vars_prompt:
- name: "password"
prompt: "Password"
private: yes
pre_tasks:
- assert:
that: password | length > 6
roles:
- initdb

关于validation - 使用 ansible 的期望变量进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39139506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com