以前用ansible管centos挺方便的,最近新上线几台ubuntu的服务器,想用ansible配置一些初始的环境。结果没有想象那么顺利,报了好些错,干脆还是先python paramiko把环境配置好,再慢慢研究一下ubuntu的ansible。
我不配免密登录,要通过用户名密码执行ansible。ubuntu要先通过一个普通用户ssh,然后sudo执行root权限,hosts里面要配置普通用户和root用户的口令:
10.11.22.28 ansible_ssh_user=developer ansible_ssh_pass=dev_pass ansible_become_user=root ansible_become=true ansible_become_pass=root_pass
旧版本的ansible最后一个参数是ansible_su_pass,大概2.0以后换乘become了。
如果要执行sudo权限的命令,就用-b来become成root
ansible all -b -a "ls"
普通用户还没建好的话家目录不能访问,得先把ansible的登录位置改一下,改ansible.cfg:
remote_tmp = /tmp/.ansible/tmp
权限搞定了,又找不到python了,因为ubuntu18默认装python3,不装python2了,所以要在hosts里配个python解释器位置:
[all:vars]
ansible_python_interpreter=/usr/bin/python3
至此可以ansible了。
批量创建用户,修改用户密码的时候因为不支持--stdin
,所以不能用
echo password | passwd --stdin user
要这么用:
echo "user:pass" | chpasswd