ansible 角色登陆

用ansible 来管理远程的主机,最大的好处是方便,ansible不用在远程的主机上安装ansible的客户端,ansible只要能通过ssh连接上远程主机就

能对它进行管理。也就是说ansible是通过ssh来连接远程主机的,于是就引出了连接到远程主机的两种认证方式,一种是用户名+密码,另一种是

~.ssh/id_rsa ~.ssh/id_rsa.pub 通过秘钥对的方式来认证;自然ansible也是逃不出已经有的条条框框。

 

一、ansible通过用户名+密码方式认证的相关变量:

ansible_host=远程主机ip
ansible_port=远程主机的ssh端口
ansible_user=远程主机中的一个用户名
ansible_ssh_pass=远程主机用户所对应的密码

 在这里需要在主机上安装sshpass:

sshpass下载地址:http://sourceforge.net/projects/sshpass/

运行下列命令安装

tar -zxvf sshpass-1.05.tar.gz
cd sshpass-1.05                
#./configure  
./configure --prefix=/opt/sshpass  
#指定安装目录 --prefix=/opt/sshpass(也可不指定)         
make && make install

  安装完成后输入sshpass出现如下提示即安装成功:

# sshpass -h
Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters
   -f filename   Take password to use from file
   -d number     Use number as file descriptor for getting password
   -p password   Provide password as argument (security unwise)
   -e            Password is passed as env-var "SSHPASS"
   With no parameters - password will be taken from stdin
   -h            Show help (this screen)
   -V            Print version information
At most one of -f, -d, -p or -e should be used

 

二、ansible通过秘钥认证相关的变量

ansible_host=远程主机ip
ansible_port=远程主机的ssh端口
ansible_ssh_private_key_file=本地用户的ssh密钥文件(私钥)

 注意:

[root@ansible_master ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 10.1.6.72
    -bash: ssh-copy-id: command not found
报错了
解决方法:
    yum -y install openssh-clients

三、有时候远程用户没有"权限"完成特定的操作,它要sudo一下才行,ansible中就要设置一下了:

ansible_become_user=root 
ansible_become=true

ansible_become_user=root 说的是到时候su到root身份执行操作,注意单单只是设置ansible_become_user是不会su的,还有一个开关控制着

是不启动su,这个开关就是ansible_become! 

posted @ 2018-02-08 10:54  水叶丽芳  阅读(428)  评论(0编辑  收藏  举报