初めてansibleを学んで、ansibleコマンドを実行する时、使うhostの中で管理机のアカウントのパスワードの问题に使われて、テスト

5488 ワード

リファレンスドキュメントhttps://www.cnblogs.com/wangxiaoqiangs/p/5685239.html http://blog.51cto.com/191226139/2066936
ansibleをインストールした後、最初の非常に小さな実験を行い、pingで被管理機の状態をテストした.
本人はhostsの中で2つのIPを設置して、ログインパスワードと管理機のパスワードはすべて同じで、命令を実行してパスワードを入力する時疑問を生みました:
私が入力したパスワードはいったい管理機のパスワードですか、それとも管理機のパスワードですか.被管理機のrootパスワードと一般ユーザーパスワードは違いますか?
この疑問を持って、テストを行いました.
開始hostsファイルに直接IPアドレスが設定されています
[weige]
192.168.230.130 
192.168.230.131 

直接ansibleコマンドを実行したときに成功しなかった
[root@weige ansible]# ansible weige -m ping
192.168.230.130 | UNREACHABLE! => {
    "changed": false, 
    "msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).\r
"
, "unreachable": true } 192.168.230.131 | UNREACHABLE! => { "changed": false, "msg": "Failed to connect to the host via ssh: ssh: connect to host 192.168.230.131 port 22: No route to host\r
"
, "unreachable": true }

どうしてですか.Ansibleはsshに基づいて動作しますが、sshが1台のリモートプライマリである場合、パスワードを入力する必要がありますか?しかし、このコマンドはパスワードの入力を提示していないので、後ろに-kを追加すると、パスワードの入力を提示します.
[root@weige ansible]# ansible weige -m ping -k
SSH password: 
192.168.230.130 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

このときrootパスワードを入力すると正常に実行され、管理機に設定されたrootパスワードと同じであれば、一度に2つ実行しても成功します.違う場合は、後でansible weige-m ping-kを再実行して別のパスワードを入力すればいいです.
前に一度入力したパスワードは后でシステムが覚えます!!!
次に、192.168.230.3130というサーバをhostsに通常のユーザー接続に設定します.
[weige]
192.168.230.130 ansible_ssh_user=weige
192.168.230.131

コマンドを実行すると、普通のユーザーがweigeのパスワードであることがわかります.
[root@weige ansible]# ansible weige -m ping -k
SSH password: 
192.168.230.130 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

そこで最終的に得られた結論はhostsに定義を付けなければ、被管理機に接続されているパスワードはrootパスワードで、パスワードを変更しない限り、一度保存してから有効です!
添付:Inventoryパラメータの説明
ansible_ssh_ホストが接続するリモートホスト名.設定したいホストの別名と異なる場合は、この変数で設定できます.
ansible_ssh_port sshポート番号.デフォルトのポート番号でない場合は、この変数で設定します.これはip:ポート192.168.1.1100.2222を使用できます.
ansible_ssh_userデフォルトのsshユーザー名
ansible_ssh_pass sshパスワード(この方法は安全ではありません.–ask-passまたはSSH鍵の使用を強くお勧めします)
ansible_sudo_pass sudoパスワード(この方法は安全ではありません.–ask-sudo-passを強くお勧めします)
ansible_sudo_exe(new in version 1.8)sudoコマンドパス(1.8以降のバージョンに適用)
ansible_接続とホストの接続タイプ例えば、local、sshまたはparamiko.Ansible 1.2以前はparamikoがデフォルトで使用されていた.1.2以降は「smart」がデフォルトで使用する、「smart」方式はControlPersistがサポートされているか否かによって「ssh」方式が実行可能か否かを判断する.
ansible_ssh_private_key_file sshで使用する秘密鍵ファイル.複数の鍵があり、SSHエージェントを使用したくない場合に適用されます.
ansible_shell_typeターゲットシステムのshellタイプ.デフォルトでは、コマンドの実行は「sh」構文を用いる、「csh」または「fish」に設定することができる.
ansible_python_interpreterターゲットホストのpythonパス.適用する場合:システムに複数のPythonがあるか、コマンドパスが「/usr/bin/python」ではないか、例えば*BSD、または/usr/bin/pythonが2ではない.X版のPython.リモートユーザのパス設定が正しく、「python」実行可能プログラム名がpython以外の名前ではないことが要求されるため、「/usr/bin/env」メカニズムは使用しない.
    ansible_python_interpreter  ,  ruby   perl  ....

上のパラメータはこのいくつかの例でより直感的に示す可能性があります
some_host         ansible_ssh_port=2222     ansible_ssh_user=manager
aws_host          ansible_ssh_private_key_file=/home/example/.ssh/aws.pem
freebsd_host      ansible_python_interpreter=/usr/local/bin/python
ruby_module_host  ansible_ruby_interpreter=/usr/bin/ruby.1.9.3

今のところ知っているのはこんなに多くて、それからいわゆる公共の鍵を補充して、任重くて道が遠くて、磨いて前進します!