ansibleでsudoers.dファイルをアップロードすると構文エラーが発生しますが、viで開いて保存すると問題が解決します。

ansibleでsudoers.dファイルをアップロードすると構文エラーが発生しますが、viで開いて保存すると問題が解決します。

さて、質問のタイトルがひどいことはわかりますが、状況自体もそうです。

私がしたいことは:

  1. sudoers 構成を含むファイルをローカルに生成します。
  2. Ansibleを使用してテンプレートモジュールを介してファイルをアップロードします。
  3. テンプレートモジュールの検証機能を使用して、設定が有効であることを確認してください。

今まではそんなに良くなった。これで奇妙な部分が発生します。ファイルの検証(validate: 'visudo -cf %s')がエラーを発生させます。検証行をコメントアウトするとファイルはアップロードされますが、手動検証(visudo -cf /etc/sudoers.d/foo_bar)も失敗します。 viを使用してファイルを開き、:wq変更せずに保存()してから、もう一度実行して成功したことを確認します。

私の現在の作業レポート:WTF? !

でも時間も遅くて疲れました。誰でも提案があれば教えてください。新しい情報が得られるように、この質問を更新し、解決策を見つけてクリーンアップします。

答え1

ファイルにファイルの末尾の改行文字がない可能性があります。sudoこれは予想される現象であり、visudo欠落しているファイルは確認できません。 Viでファイルを開いて保存すると、必要に応じて末尾に改行が追加されますsudo

関連情報