• 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.

     

    image-20210729113427170

     

    报错2

     

    "ansible_facts": {
          "discovered_interpreter_python": "/usr/bin/python"
      },

    image-20210729113638171

     

     

    解决

     

    从上面可知基本都是意思远程机器调用的python2,建议python3,看机器也是有的。

    root@k8s-node01:/home/appdeploy# ls /usr/bin/python
    python     python2     python2.7   python3     python3.5   python3.5m python3m

    image-20210729113859878

     

    那么在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

    image-20210729114003463

     

    修改后

    image-20210729140541021

     

     

    ansible普通用户执行命令

     

    生产中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的密码),然后执行成功。

     

    image-20210810142045819

     

     

    附上其他两个配置文件参考:

    ansible主机配置文件

    image-20210810142634304

    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文件

    image-20210810142715952

     

    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

     

    专业从事搬砖多年,还是在继续搬砖中,厚积薄发~
  • 相关阅读:
    hdu 1392 fzu 1333 Surround the Trees 简单凸包
    STL的应用 multiset bitset next_permutation
    hdu 3711 Binary Number 位运算(^ 与&)的应用
    鸽舍原理
    hdu 4002 Find the maximum 2011 大连网络赛 1002 Find the maximum
    组合数学
    Delphi程序破解技术概要
    NET的URL怎么静态化?
    David I谈Delphi的现状及未来发展方向
    使用Dede破解Delphi软件实战
  • 原文地址:https://www.cnblogs.com/Crazy-Liu/p/15123726.html
Copyright © 2020-2023  润新知