Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
ansible
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenEdx
ansible
Commits
ee5f12cd
Commit
ee5f12cd
authored
Jul 27, 2012
by
Michael DeHaan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Slight tweaks on vars_prompt upgrades
parent
c717934b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
23 additions
and
32 deletions
+23
-32
examples/playbooks/prompts.yml
+15
-18
lib/ansible/playbook/play.py
+8
-14
No files found.
examples/playbooks/prompts.yml
View file @
ee5f12cd
...
...
@@ -16,25 +16,22 @@
# ansible-playbook foo.yml --extra-vars="foo=100 bar=101"
# or through external inventory scripts (see online API docs)
# prompted variables are a list of variable names and a description
# that will be presented to the user, or a list of variable dictionaries
# with the following accepted keys / value types:
# 'name' / text
# 'prompt' / text (optional)
# 'private' / boolean (optional)
# prompted variables as key/value pairs:
# here's basic mode prompting. Specify a hash of variable names and a prompt for
# each.
#
# vars_prompt:
# release_version: "product release version"
# prompts can also be specified like this, allowing for hiding the prompt as
# entered. In the future, this may also be used to support crypted variables
vars_prompt
:
release_version
:
"
product
release
version"
# prompted variables as a list of variable dictionaries:
# vars_prompt:
# - name: "some_password"
# prompt: "Enter password: "
# private: True
# - name: "release_version"
# prompt: "Product release version: "
# private: False
-
name
:
"
some_password"
prompt
:
"
Enter
password"
private
:
True
-
name
:
"
release_version"
prompt
:
"
Product
release
version"
private
:
False
# this is just a simple example to show that vars_prompt works, but
# you might ask for a tag to use with the git module or perhaps
...
...
lib/ansible/playbook/play.py
View file @
ee5f12cd
...
...
@@ -157,24 +157,18 @@ class Play(object):
if
type
(
self
.
vars_prompt
)
==
list
:
for
var
in
self
.
vars_prompt
:
try
:
vname
=
var
.
get
(
"name"
)
except
KeyError
:
raise
errors
.
AnsibleError
(
"A variable dictionary in 'vars_prompt' must always have a 'name' key"
)
if
not
((
vname
[
0
]
.
isalpha
()
or
vname
[
0
]
==
'_'
)
and
vname
.
replace
(
'_'
,
''
)
.
isalnum
()):
raise
errors
.
AnsibleError
(
"'
%
s' cannot be used as a variable name. Variable names must consist of"
" a letter or underscore, followed by a string of letters, numbers, and underscores"
%
vname
)
prompt
=
var
.
get
(
"prompt"
,
None
)
if
not
'name'
in
var
:
raise
errors
.
AnsibleError
(
"'vars_prompt' item is missing 'name:'"
)
vname
=
var
[
'name'
]
prompt
=
"
%
s: "
%
var
.
get
(
"prompt"
,
vname
)
private
=
var
.
get
(
"private"
,
True
)
vars
[
vname
]
=
self
.
playbook
.
callbacks
.
on_vars_prompt
(
vname
,
private
,
prompt
)
elif
type
(
self
.
vars_prompt
)
==
dict
:
for
vname
in
self
.
vars_prompt
:
vars
[
vname
]
=
self
.
playbook
.
callbacks
.
on_vars_prompt
(
vname
)
for
(
vname
,
prompt
)
in
self
.
vars_prompt
.
iteritems
():
prompt
=
"
%
s: "
%
prompt
vars
[
vname
]
=
self
.
playbook
.
callbacks
.
on_vars_prompt
(
vname
,
False
,
prompt
)
else
:
raise
errors
.
AnsibleError
(
"'vars_prompt' section must contain either key/value pairs or a list"
" of variable dictionaries (see docs for accepted dictionary keys)"
)
raise
errors
.
AnsibleError
(
"'vars_prompt' section is malformed, see docs"
)
results
=
self
.
playbook
.
extra_vars
.
copy
()
results
.
update
(
vars
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment