ansible碎碎念

1. 

Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host's fingerprint to your known_hosts file to
manage this host.

解决方法:

export ANSIBLE_HOST_KEY_CHECKING=False

 

2. 如何生成user模块需要的password

python -c 'import crypt; print crypt.crypt("123456")'

 

3. 只指定一台主机执行

ansible -i '10.102.95.28,' all  --list-host

 

4. ansible手动指定密码

ansible -i '192.168.244.20,' all -m 'shell' -a 'df -h' -uroot -e "ansible_ssh_pass=123456"

 

5. ControlPersist自动登陆

#ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s

Ansible配置文件里面的选项,默认开启,这样,在60s内不用重复输入密码。SSH版本必须是5.6或以上版本才可使用ControlPersist特性。

 

6. 获取IP地址

hostvars[inventory_hostname]['ansible_default_ipv4']['address']

 

7. {"changed": false, "msg": "Authentication or permission failure. In some cases, you may have been able to authenticate and did not have permissions on the target directory. Consider changing the remote tmp path in ansible.cfg to a path rooted in \"/tmp\"

# vim /etc/ansible/ansible.cfg
remote_tmp = /tmp

 

8. Timeout (12s) waiting for privilege escalation prompt

   1. 带上-K参数

    -K, --ask-become-pass
                        ask for privilege escalation password

  2. -c paramiko 

  https://github.com/ansible/ansible/issues/14426

 

9. 格式化 ansible stdout 的输出

https://stackoverflow.com/questions/50009505/ansible-stdout-formatting

posted @ 2019-07-08 15:30  iVictor  阅读(1073)  评论(0编辑  收藏  举报