2017-06-28 7 views
0

私の問題がある:それは通常のssh経由でリモートマシンに接続するには、rootユーザーを使用することは悪い習慣として見られるようにAnsible sudoのルートホップ

は、私は、サーバーに接続するために特定の権限を持たないアカウントを使用します。

しかし私にとっては、すべての操作をrootユーザーとして行うことも悪い習慣です。私はいつでも可能な限り利用者を利用することを好む。

私はrootになり、指示に応じて特権コマンドを実行できます。しかし、ルート 'ホップ'権限エスカレーションを持つユーザーになるという意味はありますか?

すなわち、=>他のユーザー

私は完全に私を満たしていない参照の他の手段になるのssh-ユーザー=>なるルートと のssh:

  • がルートになって、CMDモジュールを使用(:SUを実行するのではなく、 'become_userを'、 'become_method' 'になる' を使用して検討し、次の非推奨メッセージ[警告]表示)とSUを使用

    cmd: su -c "my_command" app_user become: True become_user: root

  • は、直接、すべてのApplicativeのユーザー

になるために私のssh-ユーザーにsudoersファイルのアクセス許可を追加し、私はもっときれいにこれを行うにはいくつかの方法が足りませんか?

答えて

0

あなたは一例として、--ask-なっパスオプションであなたの脚本を実行することができます。

ansible-脚本-i ../inventories/production.ini service_install.yml --ask -becomeパス

そして、あなたのインベントリに、ここ​​ansibleグループのためにあなたの情報のユーザーを追加、production.iniと呼ばれる:

[group1] 
182.26.5.159 
182.26.5.160 
182.26.5.161 
... 
[group1:vars] 
ansible_connection=ssh 
ansible_user=appuser         # insert your app user here 
ansible_ssh_pass=passuser        # insert your pass here 

その後、暗号化あなたのインベントリファイルあなたパスワード秘密にしておくと、

../inventories/production.inあなたのOP /システム管理者チーム

ansible・ボールト暗号化するために、復号用パスワードを与えることができますなりますまま

最後のコマンド:

ansible-脚本-i ../inventories/production.ini service_install。YML --ask-なっパス--ask-ボールトパス

その後、あなたのプレーに、あなただけ "になっ:はい" ユーザーにする必要がありますあなたのタスクを呼び出すためのオプション:

cmd: "my_command" app_user 
become: yes 
+0

おかげで、なぜ私は他の解決策を探しているのですか? –

+0

OKこれは良い解決策だと思いますが、それはあなたのsshユーザーにすべてのユーザーのsudo権限を与えることを意味します。私はそれが本当に問題ではないと思う... –

0

私は自分の答えを編集しました。タスクは修正されました。通常、コマンドで "su"を指定しないと動作しません。

CMD:「my_command」APP_USERになる:はい、私は、コマンドモジュール内のsuの使用を言うように、私は(私はSSHキーと接続)を使用するが、ほぼ何です実際には詳細については