-1

次のように編成されたプレイブックがあります(この質問のために簡略化されています):

├── deploy.yml
├── hosts
├── requirements.yml
├── roles
│   └── web
│       ├── meta
│       │   └── main.yml
│       └── tasks
│           └── main.yml
└── site.retry

私の簡略化deploy.ymlは次のとおりです。

---
- name: Everything I need
  hosts: somewhere
  roles:
    - web

そして、私の簡略化roles/web/tasks/main.yml

---
- name: Various things that work
  become: yes
  [whatever]

- name: the thing that I have a problem with
  become: yes
  davidedelvento.nbextension: name=foo state=present

これは次の場合に失敗します。

ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path.

だから私はに変更しようとしroles/web/tasks/main.ymlました

---
- name: Various things that work
  become: yes
  [whatever]

- name: the thing that I have a problem with
  become: yes
  roles:
    - { role: davidedelvento.nbextension, name: foo, state: present}

同じように失敗します。私は失敗を理解しています(代わりに私がやっているタスクからロールを呼び出すことができないため、エラーはより明確になる可能性があります....)

ただし、私が望むこと、つまりその時点で nbextension が行っていることをどのように達成できるかは明確ではありません。そのロールを から に移動できroles/web/tasks/main.ymlますroles/web/meta/main.ymlが、それは機能しますが、 の前にVarious things that work実行され、後で実行する必要があります。それを達成する方法は?

nbextensionと書きましたが、同じ問題が銀河系の他の同様の役割でも発生することに注意してください。

編集:拡張機能が正しくインストールされており、次のようなスタンドアロンの単一ファイルのプレイブックから使用できることにも注意してください。

---
- name: Example
  hosts: all
  become: yes
  roles:
    - { role: davidedelvento.nbextension, name: foo, state: present}

ただし、「Web」ロールについて上記で説明したより大きなプロジェクトに「統合」する必要があります(表示していないロールが他にもあります)

EDIT2:この質問に使用されているgalaxy ansibleロールの名前がjupyterextensionに変更されていることに注意してください。ただし、問題(および解決策)はどのロールでも同じです

4

1 に答える 1