• Ansible之路——第三章:配置


    Ansible的一些的设置可以通过配置文件完成。在大多数场景下默认的配置就能满足大多数用户的需求,在一些特殊场景下,用户还是需要自行修改这些配置文件。 

    3.1 配置文件顺序

    用户可以修改一下配置文件来修改设置,他们的被读取的顺序如下:

    • ANSIBLE_CONFIG (一个环境变量)
    • ansible.cfg (位于当前目录中)
    • .ansible.cfg (位于家目录中)
    • /etc/ansible/ansible.cfg

    版本1.5之前的读取顺序如下:

    • ansible.cfg (位于当前目录)
    • ANSIBLE_CONFIG (一个环境变量)
    • .ansible.cfg (位于家目录中)
    • /etc/ansible/ansible.cfg

    Ansible 将会按以上顺序逐个查询这些文件,直到找到一个为止,并且使用第一个寻找到个配置文件的配置,这些配置将不会被叠加。

    3.2 配置文件解析

    Ansible默认安装好后有一个配置文件/etc/ansible/ansible.cfg,该配置文件中定义了ansible的主机的默认配置部分,如默认是否需要输入密码、是否开启sudo认证、action_plugins插件的位置、hosts主机组的位置、是否开启log功能、默认端口、key文件位置等等。

    常用配置:

    1)ask_pass

    这个可以控制,Ansible 剧本playbook 是否会自动默认弹出弹出密码,默认为False。

    注意:ask_pass只提供一次输入密码的机会,所以只对第一个主机生效,后面的主机如果密码与第一个主机不一样,则会提示连接失败问题。

    另外,如果ansible节点与主机之间配置了秘钥登录,那么即使密码输入错误也可以正常运行playbook。

    2)ask_sudo_pass

    类似 ask_pass,用来控制Ansible playbook 在执行sudo之前是否询问sudo密码,默认为no。

    3) forks

    这个选项设置在与主机通信时的默认并行进程数。从Ansible 1.3开始,fork数量默认自动设置为主机数量或者潜在的主机数量,这将直接控制有多少网络资源或者cpu可以被使用。

    4)gathering

    1.6版本中的新特性,这个设置控制默认facts收集(远程系统变量)。 默认值为’implicit’, 每一次play,facts都会被收集,除非设置’gather_facts: False’。选项‘explicit’正好相反,facts不会被收集,直到play中需要。 ‘smart’选项意思是,没有facts的新hosts将不会被扫描, 但是如果同样一个主机,在不同的plays里面被记录地址,在playbook运行中将不会通信。这个选项当有需求节省fact收集时比较有用。

    5)host_key_checking

    在Ansible 1.3或更新版本中将会检测主机密钥。如果你了解怎么使用并且希望禁用这个功能,你可以将这个值设置为False。

    6)inventory

    这个是默认库文件位置,脚本,或者存放可通信主机的目录:

    inventory = /etc/ansible/hosts

    在1.9版本中被叫做hostfile

    7)log_path

    如果出现在ansible.cfg文件中,Ansible 将会在选定的位置记录执行信息。请留意用户运行的Ansible对于logfile有权限:

    log_path=/var/log/ansible.log

    这个特性不是默认开启的。如果不设置,ansible将会把模块加载纪录在系统日志系统中。

    8)private_key_file

    如果你是用pem密钥文件而不是SSH 客户端或密钥认证的话,你可以设置这里的默认值来避免每一次提醒设置密钥文件位置``--ansible-private-keyfile``:

    private_key_file=/path/to/file.pem

    9)remote_port

    这个设置是你系统默认的远程SSH端口,如果不指定,默认为22号端口:

    remote_port = 22

    10)remote_tmp

    这是个ansible使用/usr/bin/ansible-playbook链接的默认用户名。注意如果不指定,/usr/bin/ansible默认使用当前用户名称:

    remote_user = root

    11) roles_path

    roles 路径指的是’roles/’下的额外目录,用于playbook搜索Ansible roles。比如,如果我们有个用于common roles源代码控制仓库和一个不同的 playbooks仓库,你也许会建立一个惯例去在 /opt/mysite/roles 里面查找roles:

    roles_path = /opt/mysite/roles

    多余的路径可以用冒号分隔,类似于其他path字符串:

    roles_path = /opt/mysite/roles:/opt/othersite/roles

    Roles将会在playbook目录中开始搜索。如果role没有找到,这个参数指定了其它可能的搜索路。

    12)timeout

    这个是默认SSH链接尝试超时时间:

    timeout = 10

    天道酬勤
  • 相关阅读:
    java四种线程池类型以及可选择的阻塞队列
    复习-java向上转型
    synchronized 加在方法和代码块底层实现区别
    synchronized 和 lock 的区别
    hashmap-put方法过程
    mybatis-防止sql注入
    synchronized-粗略过程
    消息队列-观察者模式和发布订阅模式区别
    复习-进程的调度算法
    Chocolatey
  • 原文地址:https://www.cnblogs.com/wangwei1/p/12787983.html
Copyright © 2020-2023  润新知