• Ansible配置和使用(Ansible免密登陆的小技巧)


    1. vi /etc/ansible/ansible.cfg
    2. 去掉注释:
    3. remote_tmp = ~/.ansible/tmp
    4. ##会优先读取当前目录下的hosts
    5. 14
    6. inventory = /etc/ansible/hosts
    7. 62
    8. host_key_checking = False
    9. 102
    10. log_path = /var/log/ansible.log
    11. ansible(使用密码本访问)
    12. 323
    13. [privilege_escalation]
    14. become=True
    15. become_method=sudo
    16. become_user=root
    17. become_ask_pass=False
    18. 432
    19. #连接加速配置
    20. accelerate_port = 10000
    21. 444
    22. accelerate_multi_key = yes

    ansible免密登陆的小技巧 

    1. 修改密码位置
    2. vi /etc/ansible/host
    3. 最后添加
    4. [app1]
    5. 10.1.1.1
    6. [app:children]
    7. app1
    8. [app:vars]
    9. ansible_ssh_user="online"
    10. ansible_ssh_pass="*****"
    11. ansible_ssh_port="22"
    12. #ansible使用sudo权限执行命令
    13. ansible_become_pass="*****"

    客户端配置online使用sudo的权限

    usermod -G wheel online

    案例:执行ansible命令

    1. [root@ydapp18 ansible]# ansible 10.0.3.2 -m shell -a 'ls -l /root/' -become=true
    2. 10.0.3.2 | SUCCESS | rc=0 >>
    3. total 16
    4. drwxr-xr-x. 2 root root 6 Feb 20 21:49 a
    5. -rw-------. 1 root root 1727 Feb 2 21:30 anaconda-ks.cfg
    6. -rwxr-xr-x. 1 root root 11448 Feb 20 23:07 config_centos73.sh
    7. drwxr-x--- 2 root root 6 Mar 5 20:59 test

    常用模块:

    #在受控主机的/tmp目录下新建一个目录test
    [root@ansible ~]# ansible 10.1.1.1  -a 'mkdir /tmp/test'

    #使用shell模块在受控机上执行受控机上的脚本
    ansible 10.1.1.1 -m shell -a '/bin/bash /scripts/*.sh &> /tmp/test'

    #在ansible主机上使用yum模块在受控机上安装vim
    ansible 110.1.1.1  -m yum -a 'name=vim state=present'

    #copy模块用于复制文件至远程受控机
    src:要复制到远程主机的源文件路径,可以是绝对路径,也可以是相对路径,如果路径是一个目录,将递归复制。在这种情况下,如果路径使用"/“结尾,则只复制目录里的内容,如果没有使用”/"来结尾,则将包含目录在内整个内容全部复制,类似于rsync
    dest:远程主机的目标路径,必须是一个绝对路径,如果源文件是一个目录,那么,dest指向的也必须是一个目录。
    ansible 10.1.1.1-m copy -a 'src=/usr/local/Java-jdk-8u351-linux-x64.tar.gz dest=/usr/local'

    #user模块用于管理受控机的用户帐号,在受控机上添加一个系统用户,用户名为mysql,uid为306,设置其shell为/sbin/nologin,无家目录
    ansible 10.1.1.1 -m user -a 'name=mysql uid=306 system=yes create_home=no shell=/sbin/nologin state=present'

    #service模块用于管理受控机上的服务
    ansible 10.1.1.1 -m shell -a 'systemctl is-active vsftpd'

    #启动受控机上的vsftpd服务
    ansible 10.1.1.1 -m systemd -a 'name=vsftpd enabled=yes state=started'

    #在app1组中的全部主机上创建一个名为test的文件
    ansible app1 -m file -a 'path=/tmp/test state=touch'

  • 相关阅读:
    超快速成,零基础掌握C#开发中最重要的概念
    抽象文本摘要中的事实不一致问题:一项调查
    新风机小助手-风压变速器
    C++智能指针
    timm模型无法联网下载采用本地读取
    写代码,必须要优雅...
    适合程序员/软件开发者的专业编辑器/笔记软件综合评测和全面推荐
    Python采集招聘数据信息(+详情页)并实现可视化
    .NET Core WebApi第7讲:项目的发布与部署
    Elasticsearch 之聚合分析
  • 原文地址:https://blog.csdn.net/weixin_45623111/article/details/133351057