2017-07-19 8 views
0

私はシンプルなプレイブックmaster.ymlを書いています。主な機能は、ロールを検索し、2番目のプレイブックの入力として1つを入力することです。しかし、私はvar_promptロールを使用しても変数の入力を要求しません。はvar_promptをロールに含めることができますか?

--- #master.yml 

- name: show roles. 
    hosts: nodes 
    connection: ssh 
    gather_facts: no 
    tasks: 
    - include: showroles.yml 

- name: createdb and map roles. 
    hosts: nodes 
    connection: ssh 
    gather_facts: no 
    roles: 
    - vars_prompt_role 
    tasks: 
    - include: createdb.yml 

私のディレクトリには、次のように構成された:

/playbooks/createdbandmaprole/ 
[[email protected] createdbandmaprole]$ ls 
createdb.yml hosts master.yml roles script.sql.j2 showroles.yml 
[[email protected] createdbandmaprole]$cd roles 
[[email protected] roles]$ ls 
var_prompt_role 
[[email protected] roles]$ cd var_prompt_role/ 
[[email protected] var_prompt_role]$ ls 
defaults handlers library main.yml meta tasks vars 
[[email protected] var_prompt_role]$ vim main.yml 
vars_prompt: 
- name: "database" 
    prompt: "enter the name of database" 
    private: no 
- name: "role" 
    prompt: "enter the name of role" 
    private: no 
- name: "ad_group" 
    prompt: "enter the AD_Group" 
    private: no 
[[email protected] createdbandmaprole]$ ansible-playbook master.yml -i hosts --check 

が、それはないタスク、脚本のトップレベルから呼び出されるべきVARS

+0

タイトルの内容はどのように内容に関係していますか? – techraf

答えて

1

vars_promptのプロンプトを表示しません。

Here is a most basic example:

--- 
- hosts: all 
    remote_user: root 

    vars: 
    from: "camelot" 

    vars_prompt: 
    - name: "name" 
     prompt: "what is your name?" 
    - name: "quest" 
     prompt: "what is your quest?" 
    - name: "favcolor" 
     prompt: "what is your favorite color?" 

実際には、図のようにvars_promptを呼び出すことができますe、this pageに従って。

vars_promptを呼び出す役割を持っていた場合は、roles/ディレクトリの独自のファイルで定義されます。このディレクトリは、プレイブックと同じレベルに存在する必要があります。あなたのケースでは、それは次のようになります。

--- #master.yml 

... 
- name: createdb and map roles. 
    hosts: nodes 
    roles: 
     - vars_prompt_role 
... 

次にroles/vars_prompt_role/tasks/main.ymlに、あなたはvars_prompt_role役割のタスクを定義します。役割の詳細については、this pageをチェックするか、コンテンツ構成のベストプラクティスについてはthis pageを参照してください。

は、これはあなたのroles/ディレクトリがどのように見えるべきかです:

main.ymlは、あなたがこの役のために実行したい主なタスクである
roles/ 
    var_prompt_role/ 
    files/ 
    templates/ 
    tasks/ 
     main.yml 
    handlers/ 
    vars/ 
    defaults/ 
    meta/ 

+0

ありがとう@McGlothlin。私はあなたの提案を変数の入力を促しましたが、最初のプレイブックの実行前でも変数の入力を促しました。私は最初の演劇の発動後に変数を入力することができる方法はありますか? – Nanda

+0

2番目のプレイブックで役割を参照しましたが、正しいですか?あなたが指定した順番で上から下に実行されます。詳細はこちらhttp://docs.ansible.com/ansible/latest/playbooks_intro.html#playbook-language-example – McGlothlin

+0

@Nanda shoot、「vars_prompt」はセクションであって役割ではない申し訳ありませんが、それはしばらくありました)。それに応じて私の答えを更新。 – McGlothlin

関連する問題