6

ssh できないユーザーが所有する git ディレクトリがあります。私は現在sudo_user: user、動作しているものを使用していますが、$HOME を正しく設定していないようです。ユーザー アカウントの ~/.ssh/known_hosts ファイルに github がありますが、~ssh_user/.ssh/known_hosts ファイルに (accept_hostkey=yes から) 追加されています。

http://docs.ansible.com/git_module.html

- hosts: myhost
  sudo_user: user
  tasks:
    - name: git
      git: repo=git@github.com:user/repo.git dest=/home/user/repo update=no accept_hostkey=yes

$HOME を正しく使用するように ansible に指示するために必要なことはありますか?

私は Joyent の Solaris で実行していますが、それがこの問題に直接当てはまるとは思いません。

4

4 に答える 4

7

ansible.cfgファイルに sudo_flags を追加します。

[defaults]
sudo_flags = -i

これにより、 sudo ユーザーのログイン スクリプトが実行され、$HOME などの環境変数が設定されます。

于 2015-02-24T16:03:45.473 に答える
3

sudo一連の環境変数、特に でマングリングを行いますHOME。これは次の方法で確認できます。

sudo -u user | grep HOME

が得られ/home/userた場合は問題ありませんが、おそらく が得られ/home/ssh_userます。

これは実際sudoには ansible ではなく に関連するものです。

これを回避するには、次を追加できます/etc/sudoers

Defaults    always_set_home
Defaults    set_home

再試行してくださいsudo user | grep HOME。適切な結果が得られるはずです。

そうでない場合は、Defaults env_keepsudo ディレクティブを確認します。ここでも役割を果たすことができます。Defaults env_keep += "HOME"in/etc/sudoersを探して削除します (このディレクティブは、sudo をHOME発行するユーザーから保存するように sudo に要求します)

幸運を。

編集: これらのディレクティブは にも表示される場合があり/etc/sudoers.d/ます。Solarisについては知らないので、YMMVです。

于 2014-04-04T23:49:18.580 に答える