2017-10-11 16 views
0

.iniファイル内のストアのデータベースリストをチェックし、存在しない場合はファイルからストアを作成するタスクがあります。可能です。各変更の関数を呼び出す

現在、私は、データベースの存在を確認し、このタスクがあります。

- name: Check DB (if necessary) 
    mysql_db: 
    name: "{{ item }}" 
    state=present 
    register: db_created 
    with_ini: 
    - databases[1-100] 
    - section: sites 
    - file: "lookup.ini" 
    - re: true 

をしかし、それはちょうどデシベルの存在をチェックし、イベントを上昇滞在「db_created」されます。

そして、私はこのようなタスクを使用して新しいデータベースを作成する必要があります。

- name: Import DB (if it was created) 
    mysql_db: 
    name=my_database 
    state=import 
    target=/tmp/database.sql 
    when: db_created.changed 

しかし、このタスクでそれは私が作成する必要があるすべてのデータベースのために、一度呼び出さないであろう。そして、どのデータベースを作成する必要があるかを正確に知る必要があります。

データベースの正しい名前を使用して2番目のデータベースを呼び出す方法、さらに複数のデータベースがある場合はすべてのデータベースを呼び出す方法を教えてください。

答えて

1

構文が異なりますが、最初のタスクはチェックするだけでなく、dbが存在することを確認します(見つからない場合は新しいデータベースを作成します)。

あなたのdb_created結果には、商品ごとにchangedステータスがあります。このような
何かが仕事をする必要があります。このような

- name: Check DB (if necessary) 
    mysql_db: 
    name: "{{ item }}" 
    state: present 
    register: db_created 
    with_ini: 
    - databases[1-100] 
    - section: sites 
    - file: "lookup.ini" 
    - re: true 

- name: Import DB (if it was created) 
    mysql_db: 
    name: "{{ item.item }}" 
    state: import 
    target: /tmp/database.sql 
    when: item is changed 
    with_items: "{{ db_created.results }}" 

またはイベントは、(のみ変更された項目を反復処理する):

- name: Import DB (if it was created) 
    mysql_db: 
    name: "{{ item.item }}" 
    state: import 
    target: /tmp/database.sql 
    with_items: "{{ db_created.results | select('changed') | list }}" 

注:お使いの構文について - :を使用し、常に、=を忘れてしまいました。

+0

ありがとうございました。 –

関連する問題