1

ansibleパッケージを使用して一部のリモート サーバーに ping を実行する Python スクリプトがあります。手動で実行した場合 ( python devmanager.py ) は正常に動作しますが、スクリプトがスーパーバイザーで管理されている場合、次のエラーが発生します。

Could not make dir /$HOME/.ansible/cp: [Errno 13] Permission denied: '/$HOME

ansible コマンドは非常に単純です。

    runner = ansible.runner.Runner(
            module_name='ping',
            module_args='',
            forks=10,
            inventory=inventory
    )

ソース システムとターゲット システムで同じユーザー。$HOME フォルダーのアクセス許可を確認しましたが、奇妙なものは見つかりませんでした。

何が起こっているのか分かりますか?$HOME 変数を変換することを知らないのですか?

4

2 に答える 2

1

ansible.cfg のパラメーター「remote_tmp」を変更して試してみてください。

デフォルト:-$HOME/.ansible/tmp

アップデート:-/tmp/.ansible/tmp

この場合、ユーザーが Playbook を実行しようとすると、/tmp ディレクトリに必要な一時ファイルを作成するための十分な権限が与えられます。

于 2015-08-13T03:32:49.280 に答える
0

はい、変数をエスケープせず$HOMEに下に書き込もうとしているよう/$HOMEです。

于 2015-08-12T09:55:49.923 に答える