ansible报错解决python依赖,Ansible普通用户执行命令
报错1
执行ansible报错python这一个
[DEPRECATION WARNING]: Distribution Ubuntu 16.04 on host k8s-node01 should use /usr/bin/python3, but is using /usr/bin/python for backward
compatibility with prior Ansible releases. A future Ansible release will default to using the discovered platform python for this host. See
https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information. This feature will be removed in
version 2.12. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
报错2
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
解决
从上面可知基本都是意思远程机器调用的python2,建议python3,看机器也是有的。
root@k8s-node01:/home/appdeploy# ls /usr/bin/python
python python2 python2.7 python3 python3.5 python3.5m python3m
那么在ansible的host内调用即可
k8s-node01 ansible_ssh_user=appdeploy ansible_ssh_port=51000 ansible_python_interpreter=/usr/bin/python3.5
k8s-node02 ansible_ssh_user=appdeploy ansible_ssh_port=51000 ansible_python_interpreter=/usr/bin/python3.5
修改后
ansible普通用户执行命令
[参考链接] https://blog.csdn.net/qq_34939308/article/details/110454215
生产中root都是禁止直接远程登录得。很多命令root权限才能执行,脚本使用expect提权又麻烦,还好ansible自带有这功能。
修改下列配置文件
root@k8s-master01:~# cat /etc/ansible/ansible.cfg
[defaults]
timeout = 30
remote_user = root
[inventory]
[privilege_escalation]
become=True ###表示打开become开关,也就是输入密码那一栏
become_method=su ###表示用什么方式将普通账户切换到root或所需的其他账户,这里可以用su或sudo
become_user=root ##***设置为root账户,相当于我们以普通账户登入到远程主机时,再使用su - root切换为root账户。
become_ask_pass=True ###表示询问密码
[paramiko_connection]
[ssh_connection]
[persistent_connection]
[accelerate]
[selinux]
[colors]
[diff]
修改后执行root权限得命令会弹出让你输入BECOME密码(也就是你远程主机root的密码),然后执行成功。
附上其他两个配置文件参考:
ansible主机配置文件
root@k8s-master01:~# cat /etc/ansible/hosts |grep -Ev '^$|#'
[k8s]
k8s-node01 ansible_ssh_user=appdeploy ansible_ssh_port=51000 ansible_python_interpreter=/usr/bin/python3.5
k8s-node02 ansible_ssh_user=appdeploy ansible_ssh_port=51000 ansible_python_interpreter=/usr/bin/python3.5
root@k8s-master01:~# fengliuxiaosanyuanchuang
系统主机hosts文件
root@k8s-master01:~# cat /etc/hosts |grep -Ev '^$|#'
127.0.0.1 localhost
127.0.1.1 ubuntu
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.202.128 k8s-master01
192.168.202.132 k8s-node01
192.168.202.130 k8s-node02
专业从事搬砖多年,还是在继续搬砖中,厚积薄发~