Ansible: むンベントリがhost_list / script芁件を満たしおいたせんAnsible 2.7.1

䜜成日 2018幎11月18日  Â·  45コメント  Â·  ゜ヌス: ansible/ansible



抂芁


macOSでHomebrewを䜿甚しおansibleバヌゞョン2.7.1にアップグレヌドした埌、詳现オプションを指定しおプレむブックを実行するず、次の情報譊告が衚瀺されたす。

/etc/ansible/hosts did not meet host_list requirements, check plugin documentation if this is unexpected
/etc/ansible/hosts did not meet script requirements, check plugin documentation if this is unexpected

私のプレむブックはただ実行され、問題なく完了しおいたす。 過去にhostsファむルで問題が発生したこずはなく、このメッセヌゞがansible2.7.0で衚瀺されるこずもありたせん。

問題の皮類
  • バグレポヌト
コンポヌネント名


host_listプラグむンむンベントリファむル
スクリプトプラグむンむンベントリファむル

ANSIBLEバヌゞョン

ansible 2.7.1
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/Users/myuser/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/Cellar/ansible/2.7.1/libexec/lib/python3.7/site-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.7.1 (default, Nov  6 2018, 18:45:35) [Clang 10.0.0 (clang-1000.11.45.5)]
構成

ANSIBLE_PIPELINING(/etc/ansible/ansible.cfg) = True
DEFAULT_HOST_LIST(/etc/ansible/ansible.cfg) = ['/etc/ansible/hosts']
DEFAULT_REMOTE_USER(/etc/ansible/ansible.cfg) = myuser
RETRY_FILES_ENABLED(/etc/ansible/ansible.cfg) = False
OS /環境


macOS High Sierra 10.13.6

再珟する手順


ansibleバヌゞョン2.7.1に切り替え、詳现を有効にしお任意のプレむブックを実行したす。

ansible-playbook test.yml -v

期埅される結果

Using /etc/ansible/ansible.cfg as config file
PLAY [localhost] *************************************************************************************************************************************

TASK [Gathering Facts] *******************************************************************************************************************************
ok: [localhost]
実瞟


プレむブックは匕き続き実行され、問題なく完了したす。 しかし、ansibleの詳现な情報メッセヌゞは、Homebrewで入手可胜な最新バヌゞョンのむンベントリファむルに問題があるこずを瀺唆しおいたす。

Using /etc/ansible/ansible.cfg as config file
/etc/ansible/hosts did not meet host_list requirements, check plugin documentation if this is unexpected
/etc/ansible/hosts did not meet script requirements, check plugin documentation if this is unexpected
PLAY [localhost] *************************************************************************************************************************************

TASK [Gathering Facts] *******************************************************************************************************************************
ok: [localhost]
affects_2.7 bug module python3 core

最も参考になるコメント

checkedを取埗するプラグむンが実行しおいるこずは䜕でも、報告する必芁がありたす。 䜕かが正しくないず蚀うだけで、䜕が悪いのか党く手がかりを䞎えないのは間違っおいたす。 「芁件を満たしおいたせん」ずいうメッセヌゞが理由もなく衚瀺されおいるため削陀する必芁があるか、「䜕を、どこで、なぜ」ずいう本圓の理由を瀺しおください。

党おのコメント45件

こんにちは@ mil1i 、この問題を提出しおいただきありがずうございたす

ボットのヘルプに぀いおは、ここをクリックしおください

説明で識別されるファむル

これらのファむルが䞍正確な堎合は、説明のcomponent nameセクションを曎新するか、 !componentボットコマンドを䜿甚しおください。

ボットのヘルプに぀いおは、ここをクリックしおください

これはhttps://github.com/ansible/ansible/pull/46766で意図的に実装され、 -v以䞊でansibleを実行するずきに远加情報を提䟛したす。

さらに質問がある堎合は、IRCたたはメヌリングリストに立ち寄っおください。

  • IRCirc.freenode.netで#ansible
  • メヌリングリスト https //groups.google.com/forum/#forum / ansible -project

IMO、それは远加情報ではありたせん。 芁件が満たされおいない理由が蚘茉されおいる堎合、たたは新しい芁件が䜕であるかぞのリンクがある堎合でも、圹立぀可胜性がありたす。

新しい芁件はありたせん。プラグむンがスキップされた理由に関する情報を提䟛するだけです。倚くの理由がありたす。この堎合、プラグむンの「確認」フェヌズに合栌しなかったためです。プラグむンには特定の芁件がありたす。ドキュメントansible-doc -tinventoryを参照

メッセヌゞには、なぜ、䜕を、そしおそれがうたくいかないのかずいうこずは䜕も芋えたせん。 ansible-doc -t inventory iniは、䜕が怜蚌されないかに぀いおのヒントを私に䜕も䞎えたせん。 怜蚌フェヌズに苊情がある堎合は、それに぀いお具䜓的にする必芁がありたす行、列、正しくないもの。Ansible゜ヌスコヌドに䜏んでいない堎合は䜕の意味もない挠然ずしたメッセヌゞではありたせん。

芁件が満たされおいない理由は、解析゚ラヌが別の理由である可胜性があり、特定の䟋倖/トレヌスバックが発生したす。 各プラグむンには独自の芁件ず怜蚌があり、倚くの堎合、ファむルの内容ではなく、ファむル自䜓の性質に関係しおいたす。

-vvvを䜿甚するず、芁件が満たされない理由の少なくずも1぀がわかりたす。
Skipping due to inventory source not existing or not being readable by the current user

-vvvは、-vメッセヌゞ以倖の䜕も衚瀺したせん。 -vvvvvvも同様です。 少なくずもiniベヌスのむンベントリでは、存圚しない問題に察するアラヌトのバグのように芋えたす。

䞀䟋ずしお、他の理由がありたす。すべおが特定の情報を衚瀺するわけではなく、特定のプラグむンによっお異なりたす。 iniむンベントリがこれを盎接匕き起こしおいるわけではありたせん。これは、iniがファむルを受け入れる前に他の2぀のプラグむンが「チェック」されるためです。

checkedを取埗するプラグむンが実行しおいるこずは䜕でも、報告する必芁がありたす。 䜕かが正しくないず蚀うだけで、䜕が悪いのか党く手がかりを䞎えないのは間違っおいたす。 「芁件を満たしおいたせん」ずいうメッセヌゞが理由もなく衚瀺されおいるため削陀する必芁があるか、「䜕を、どこで、なぜ」ずいう本圓の理由を瀺しおください。

その段階的な改善、コヌドのその郚分は理由を知らない、プラグむンが怜蚌フェヌズでそれを拒吊したずいうだけで、それはあなたがそのフェヌズで拒吊されたこずを知らなかった以前よりも倚くの情報です

すべおが元のポスタヌの䞡方のために実行されるので、それは改善のようには芋えたせん。

確かに、非垞に混乱しおいたす。

たた、このメッセヌゞは玛らわしいず思いたした。

圌の「゚ラヌ」メッセヌゞは圹に立たないこずに同意したす。少なくずも、host_listの芁件を含むドキュメントの特定の章ぞのリンクが必芁です。 私のプレむブックは問題なく実行され、このメッセヌゞが正確に衚瀺される理由ず問題の修正方法がわかりたせん。

その段階的な改善、コヌドのその郚分は理由を知らない、プラグむンが怜蚌フェヌズでそれを拒吊したずいうだけで、それはあなたがそのフェヌズで拒吊されたこずを知らなかった以前よりも倚くの情報です

それで、おそらくそれらのプラグむンは有甚な情報を持っおいるので、メッセヌゞをトリガヌするたたはトリガヌしないほうがよいでしょうか

メッセヌゞが玛らわしいこずに同意したす。 「host_listの芁件」ずは䜕か、それがどのプラグむンに぀いお話しおいるのかわかりたせんでした。

Inventory Pluginsのドキュメントを読んだ埌、回避策を芋぀けたした。 䜿甚しおいるむンベントリプラグむンのみを䜿甚しおAnsibleを構成するず、ファむルが他のプラグむンの芁件を満たしおいないずいう譊告を回避できたす。

[inventory]

# avoid "did not meet _ requirements" warnings when using -v
# see https://github.com/ansible/ansible/issues/48859
enable_plugins = ini

どのプラグむンがメッセヌゞを生成したかをどうやっお知るのですか それは少なくずもヒントになるでしょう。 プラグむンリストを1぀yamlに枛らしおもメッセヌゞが衚瀺されたすが、むンベントリは正垞に解析されおいるようです。

メッセヌゞには垞にプラグむン名host_list / ini / script / yaml / etcがあり、新しいメッセヌゞではメッセヌゞの途䞭ではなく先頭に配眮されるようになりたした。

いいえ、そうではありたせん。 䞍平を蚀っおいるプラ​​グむンの名前ではなく、最初に䞍平を蚀っおいるファむルがありたす。

/Users/alan/Source/ansible_home/hosts.iniがhost_listの芁件を満たしおいたせんでした。予期しない堎合は、プラグむンのドキュメントを確認しおください

プラグむン名のように芋えるものは䜕も衚瀺されたせん。 @ leedm777が瀺唆しおいるように、むンベントリ察応プラグむンをiniだけに制限するずメッセヌゞが削陀されるため、ファむル名のヒントでさえ正しくありたせん。

enable_plugins = iniがメッセヌゞを停止するこずを考えるず、他のむンベントリプラグむンが入力ずしおiniファむルを誀っお取埗し、䞍適切な゚ラヌメッセヌゞで䞍平を蚀っおいるように芋えたす。 これはどうしおバグではないのですか

@alanbantuitは、䞊蚘のPRからの新しいメッセヌゞを読みたす。これは、プラグむンを開始するメッセヌゞです。

あなたの䟋からわかるように、「host_list」はプラグむンですが、これは明確ではないこずに同意したす。そのため、プラグむンを最初に倉曎したした。

では、ブラザヌズは䜕をしたすか プラグむン「host_list」ずは䜕ですか

远加した

[inventory]
enable_plugins = host_list, script, yaml, ini, auto

私の䌚議にしかし同じメッセヌゞ

これは、䜜成者にはバグのようには芋えないが、䞀般ナヌザヌには明らかに問題を匕き起こすバグの䞀皮のようです。 おそらく、文蚀ぱラヌではないこずをより明確にする必芁があり、プラグむン名は次のように匕甚笊で囲む必芁がありたす

INFO somefile.inv does not meet the requirements of the "host_list" plugin

テキストはすでに倉曎されおいたす、 https//github.com/ansible/ansible/pull/49080 、たた私はそれが瀺す冗長性にぶ぀かりたした。

これを明確にするために、これは譊告でも゚ラヌでもありたせん。詳现蚭定を䜿甚するず衚瀺される単なる情報メッセヌゞです。 詳现床の増加に関するメッセヌゞはいずれも゚ラヌではなく、垞に衚瀺されたす。゚ラヌに関する詳现情報が衚瀺される堎合がありたすが、゚ラヌず譊告には独自の衚瀺機胜がありたす。

うヌん本圓、譊告は玫、゚ラヌは赀

私はただメッセヌゞが䜕であるかわかりたせんがD

䞀郚のコヌドがテストに合栌し合栌した入力に関する情報メッセヌゞを発行する必芁があるように思われたす。 それは䞀貫性があり、より有益です。 ここでは、入力がどこかのテストに合栌したように芋えたすが、どこにあるのかわかりたせん。

テストに合栌するず、プラグむンが入力を「凊理」しおいるこずがわかりたす。このメッセヌゞは、プラグむンが入力を凊理しなかった理由に関する情報を提䟛するためのものです。

説明に蚘茉されおいる゚ラヌメッセヌゞを怜玢した埌、この問題が最初に発生するのはおかしいです。 それは、圚庫リストをドキュメントの䟋ず比范した埌、問題を芋぀けずに解決策を芋぀けるために私がしなければならなかったこずだからです。

私はAnsibleチヌムに敬意を衚し、圌らの仕事に感謝しおいたすが、これはクヌルな倉曎ではありたせん@bcoca混乱し、答えではなく質問が残るため、䞍芁です。

Ansibleに入力ファむルに問題がある堎合は、ハヌド出口で終了し、問題が䜕であるかを正確に教えお、修正しおタスクを続行できるようにしたす。

むンベントリプラグむンが機胜する方法は、それらのリストを持っおいるこずです。リストを調べお、その゜ヌスがプラグむンず䞀臎するかどうかを確認し、解析できる堎合は、譊告が衚瀺されたす切り替えお゚ラヌにしたす プラグむンがファむルを読み取るこずができない堎合。

぀たり、hosts.iniが䞎えられた堎合、最初に「host_list」むンラむンホスト文字列-i "host1, host2,"を取りたす、次にscript動的スクリプトの堎合、次にyaml、次にiniこれがスキップされた堎合は「auto」を詊したす。 。 プラグむンが゜ヌスをスキップした理由を明確にするためにメッセヌゞを远加したした。この堎合、プラグむンは「怜蚌」フェヌズを通過したせんでした。䞊蚘のPRにより、このメッセヌゞがより明確になりたす。

繰り返したすが、これぱラヌや譊告ではなく、詳现を実行したずきに衚瀺される倚くのメッセヌゞの1぀でした。

この議論を読んだ今、私​​はこれらのメッセヌゞが䜕であるかを理解しおいたす。 しかし、私がこれを調査しお読んだのにおそらく20分を費やしたこずは泚目に倀したすそしおコメントはそれがより倚くのナヌザヌにずっお懞念事項であったこずを瀺しおいたす_冗長出力のすべおのメッセヌゞがこの皮の応答を匕き起こすほど心配だった堎合、誰もAnsibleおよび/たたは冗長モヌドで行われた有甚なものはすべお圹に立たないず芋なされたす。_

私にずっおの問題は、「-v」たたは「-vv」を䜿甚するず、機胜しなかったプラグむンが報告されたすが、どちらのDIDが機胜したかが瀺されないこずでした。 どのプラグむンが機胜したかを確認するには、完党な「-vvv」を実行する必芁がありたす。 プラグむンの成功メッセヌゞを垞にプラグむンの倱敗メッセヌゞず同じ詳现レベルで衚瀺するだけで、この混乱を回避できるかもしれたせん。

@flatrocksもう䞀床、䞊のPRを芋おください、それはたさにそれをしたした

私はメッセヌゞも混乱しおいるず蚀わざるを埗たせん。これが私がこのバグを読んだ理由です。

これはデバッグレベルのメッセヌゞであり、V = 1で出力されたすが問題はありたせん。 皮肉なこずに、これらのメッセヌゞは出力されたすが、ホストファむルがロヌドされたずしおも、最終的にどのプラグむンを䜿甚しおホストファむルをロヌドしたのかわかりたせん。

バグは本物であり、いく぀かの問題を匷調しおいるず思いたす。

  • メッセヌゞにはプラグむン名が正しく蚘茉されおいたす。「FILEがFOOむンベントリプラグむンの芁件を満たしおいないため、読み蟌みをスキップしたした。
  • むンベントリファむルの正垞なロヌドに関するメッセヌゞである必芁がありたす
  • むンベントリファむルのスキップロヌドは、より詳现な蚭定が有効になっおいる堎合にのみ衚瀺されたす。lileV> = 2皋床。
  • ドキュメントぞのパヌマリンクを含たないRTFDメッセヌゞは、ナヌザヌ゚クスペリ゚ンスを䜎䞋させたす。 メッセヌゞがナヌザヌにドキュメントを読むように勧める堎合は、URLを含める必芁がありたす。

これらのメッセヌゞの埌に「提䟛されたホストパタヌンに䞀臎できたせんでした。無芖したす 'all'」が衚瀺されるので、明らかにどこかで䜕かが機胜しおいたせんが、これを芋぀けたり修正したりする方法に぀いおの情報がありたせん。 間違いなくより良い゚ラヌメッセヌゞが必芁です。

この情報メッセヌゞを受け取らないようにするために、どのタむプの芁件を満たす必芁があるかを知るこずができたすか

PRコミットの修正の新しいメッセヌゞは次のずおりです。
display.vvv("%s declined parsing %s as it did not pass it's verify_file() method" % (plugin_name, source))

@bcoca
それは、「その」の代わりに「それだ」ずすべきではありたせんか
https://github.com/ansible/ansible/blob/devel/lib/ansible/inventory/manager.py#L281
ちなみに、この説明に感謝したす。

はい、「それは」は「それは」の瞮玄であり、「それ」の所有栌ではありたせん。 所有栌は「その」です。

差出人「sremy」 [email protected]
宛先 "ansible / ansible" [email protected]
Cc "Alan Brenner" [email protected] 、 "コメント" [email protected]
送信日2019幎1月4日金曜日7:05:19 AM
件名Re[ansible / ansible]むンベントリがhost_list / script芁件を満たしおいたせんAnsible 2.7.148859

PRコミットの修正の新しいメッセヌゞは次のずおりです。
display.vvv "sは、verify_fileメ゜ッドを枡さなかったため、sの解析を拒吊したした"plugin_name、source

[ https://github.com/bcoca | @bcoca ]
「それは」ではなく「その」であるべきではありたせんか
[ https://github.com/ansible/ansible/blob/devel/lib/ansible/inventory/manager.py#L281 | https://github.com/ansible/ansible/blob/devel/lib/ansible/inventory/manager.py#L281 ]
ちなみに、この説明に感謝したす。

—
あなたがコメントしたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信しおください、[ https://github.com/notifications/unsubscribe-auth/AAigO-Cbc5kdXQNhBL8mpkefzwoemKN9ks5u_0N_gaJpZM4YoJPK | スレッドをミュヌトしたす]。

これをすべお読んだ埌、぀いに頭の䞭にあるかどうか誰かに教えおください。 むンベントリを読み取るためのいく぀かの異なるプラグむンがありたす私はyamlを䜿甚しおいたす。

このすべおが私に䌝えようずしおいるのは、iniスタむル、スクリプト、たたはその他のもののむンベントリチェックに合栌しなかったずいうこずですか

@sgutermannはい、iniスクリプトのむンベントリチェックに合栌しなかったこずを䌝えようずしおいたす代わりにyamlスクリプトを䜿甚しおいるためです。

ansible.cfgで䜿甚した堎合

[inventory]
# enable inventory plugins, default: 'host_list', 'script', 'yaml', 'ini'
enable_plugins = yaml

そうすれば、それらの「情報通知」は消えおしたいたす。 䜕のためにあるのかはっきりしないこずには同意したすが、詊行錯誀の末、それらの「通知」を取り陀くこずができたした。 私はすべおにini圢匏を䜿甚し、「1回限り」は実行したせん...したがっお、iniずtadaを䜿甚するだけです...これ以䞊むラむラするメッセヌゞはありたせん。

この゚ラヌは䜕ですか、私はAnsibleを詊しおみたい初心者です、

しかし、それは私が解決する方法がわからない゚ラヌを匕き起こしたした.....

私もこれを入れ続けたす

enable_plugins = ini

私のansible.cfgファむルにありたす。 超迷惑...

@ bcoca 、 @ ssbarneaが瀺唆するようにメッセヌゞを明確にするこずは、非垞に圹立぀でしょう。 PRのメッセヌゞはそれほど明確ではなく、提案は、ナヌザヌが別の圚庫のために「スキップ」されるのではなく、「未確認」のために䜕かが「拒吊」されおいる理由を発芋するために内郚を調べたがらないようにするのに圹立ちたすプラグむン。 メッセヌゞは、提案されおいるように、プラグむンをむンベントリプラグむンずしお識別する必芁もありたす。 たた、最初に情報メッセヌゞを提䟛し、実際にロヌドされおいるむンベントリプラグむンのレベルに䞀臎するように詳现床を蚭定しおいただきありがずうございたす。 「䜕が悪かったの」ず思っお、今日は䜕かを孊ぶこずができたした。 :)

2.7.8では、次のメッセヌゞが衚瀺されたす。

Using /root/ansible/ansible.cfg as config file
/root/ansible/hosts did not meet host_list requirements, check plugin documentation if this is unexpected
/root/ansible/hosts did not meet script requirements, check plugin documentation if this is unexpected

私にずっお、host_listずscriptがプラグむンの実際の名前であるこずは明らかではありたせんでした。

私はそれが次のように明確になるず思いたす

Using /root/ansible/ansible.cfg as config file
/root/ansible/hosts did not meet requirements for "host_list" plugin, check plugin documentation if this is unexpected
/root/ansible/hosts did not meet requirements for "script" plugin, check plugin documentation if this is unexpected

@candlerb同じ問題!!

[ root @ localhost〜 ] _ ### ansible-playbook -i / etc / ansible / hosts openshift-ansible / playbooks / openshift-node / bootstrap.retry -vvv_
ansible-プレむブック2.7.10
蚭定ファむル= / etc / ansible / ansible.cfg
構成されたモゞュヌル怜玢パス= [u '/ root / .ansible / plugins / modules'、u '/ usr / share / ansible / plugins / modules']
ansiblepythonモゞュヌルの堎所= / usr / lib / python2.7 / site-packages / ansible
実行可胜堎所= / usr / bin / ansible-playbook
pythonバヌゞョン= 2.7.5デフォルト、2019幎3月26日、221306[GCC 4.8.5 20150623Red Hat 4.8.5-36]
蚭定ファむルずしお/etc/ansible/ansible.cfgを䜿甚する
/ etc / ansible / hostsがhost_listの芁件を満たしおいたせんでした。予期しない堎合は、プラグむンのドキュメントを確認しおください
/ etc / ansible / hostsがスクリプト芁件を満たしおいたせんでした。予期しない堎合は、プラグむンのドキュメントを確認しおください
iniプラグむンを䜿甚しお/ etc / ansible / hostsむンベントリ゜ヌスを解析したした
゚ラヌ プレむブックは挔劇のリストでなければなりたせん

゚ラヌは「/root/openshift-ansible/playbooks/openshift-node/bootstrap.retry」にあるようです1行1列目ですが、
正確な構文の問題に応じお、ファむルの他の堎所に配眮したす。

問題のある行は次のように芋えたす

master.istic.linsoft.com

゚ラヌ プレむブックは挔劇のリストでなければなりたせん

それは別の問題です。 YAMLプレむブックであるかのように再詊行ファむルを提䟛しおいたすが、そうではありたせん。 倱敗したホストのリストです。

䜿甚 ansible-playbook /path/to/bootstrap.yml --limit @/path/to/bootstrap.retry

これはバグではないため、ここでこれ以䞊説明するこずは控えおください。代わりに、ansible-projectgoogleグルヌプを䜿甚しおください。

ねえ 迅速な察応ありがずうございたす
それ以倖の堎合でも同じ問題が発生したす
..。

ル・ディム。 21avr。 2019à0854、ブラむアンキャンドラヌ[email protected] a
écrit

゚ラヌ プレむブックは挔劇のリストでなければなりたせん

それは別の問題です。 たるでそれがであるかのように再詊行ファむルを提䟛しおいたす
YAMLプレむブックですが、そうではありたせん。 倱敗したホストのリストです。

䜿甚ansible-playbook /path/to/bootstrap.yml --limit
@ / path / to / bootstrap.retry

それはバグではないので、ここでこれ以䞊議論するこずは控えおください-䜿甚しおください
代わりに、ansible-projectgoogleグルヌプ。

—
あなたがコメントしたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/ansible/ansible/issues/48859#issuecomment-485232650 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/ALWB2BCFZ5OPUOJSKEXNP6TPRQMT7ANCNFSM4GFASPFA
。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡