文章目录

  • 配置文件
  • 主配置文件详解
  • Ansible配置文件优先级
  • 主机清单
  • 主机清单详解
  • 实例

配置文件

Ansible在/etc/ansible下会生成三个文件或目录

  • Hosts:默认主机清单配置文件
  • ansible.cfg:Ansible默认主配置文件
  • Roles:角色定义目录

主配置文件详解

[root@ansible ~]# vim /etc/ansible/ansible.cfg
[defaults]                                                              //默认配置
#inventory      = /etc/ansible/hosts                                   //主机列表配置文件
#library        = /usr/share/my_modules/                               //库文件存放目录,ansible默认搜寻模块的位置
#module_utils   = /usr/share/my_module_utils/                          //模块存放目录
#remote_tmp     = ~/.ansible/tmp                                       //临时py命令文件存放在远程主机目录
#local_tmp      = ~/.ansible/tmp                                       //本机的临时命令执行目录
#plugin_filters_cfg = /etc/ansible/plugin_filters.yml
#forks          = 5                                                        //默认并发数
#poll_interval  = 15                                                   //时间间隔
#sudo_user      = root                                                 //默认sudo用户
#ask_sudo_pass = True                                                  //每次执行ansible命令是否询问sudo用户密码,默认值为no
#ask_pass      = True                                                  //每次执行ansible命令是否询问ssh密码,默认值为no
#transport      = smart                                                    //传输方式
#remote_port    = 22                                                   //远程端口号
#remote_user = root                                                        //远程用户,受控主机使用什么用户进行执行ansible任务
#roles_path    = /etc/ansible/roles                                        //角色定义目录
#host_key_checking = False[privilege_escalation]                                                   //普通用户提权
#become=True
#become_method=sudo
#become_user=root
#become_ask_pass=False[paramiko_connection]、[ssh_connection]、[accelerate]                  //用于优化与受控主机的连接
[selinux]                                                               //定义selinux交互

Ansible配置文件优先级

Ansible配置以ini格式存储配置数据,在Ansible中⼏乎所有配置都可以通过Ansible的Playbook或环境变量来重新赋值。在运⾏Ansible命令时,命令将会按照以下顺序查找配置⽂件。

  • ANSIBLE_CONFIG变量
    首先Ansible命令会检查环境变量,及这个环境变量指向的配置⽂件。export ANSIBLE_CONFIG=/PATH
  • ./ansible.cfg
    其次会检查当前⽬录下的ansible.cfg配置⽂件
  • ~/.ansible.cfg
    再次会检查当前⽤户home⽬录下的.ansible.cfg配置⽂件。
  • /etc/ansible/ansible.cfg
    最后会检查在⽤软件包管理⼯具安装Ansible时⾃动产⽣的配置⽂件。

主机清单

清单定义ansible将要管理的一批主机。这些主机也可以分配到组中,以进行集中管理。组可以包含子组,主机也可以是多个组的成员。清单还可以设置应用到它所定义的主机和组的变量。

可以通过两种方式定义主机清单。静态主机清单可以通过文本文件来定义。动态主机清单可以根据需要使用外部信息提供程序通过脚本或者其他程序来生成。

主机清单详解

静态清单文件
静态清单文件是指定Ansible目标受控主机的文本文件。可以使用多种不同的格式编写此文件,包括INI样式或YAML。
INI样式的静态清单文件是受控主机的主机名或IP地址的列表一行一个

[root@ansible ~]# vim /etc/ansible/hosts
## green.example.com
## blue.example.com
## 192.168.100.1
## 192.168.100.10

可以将受控主机组合一个主机组,通过组,可以更加有效的运行Ansible。组名是以中括号括起来的。

## [webservers]                                  //定义组名
## alpha.example.org                            //域名形式
## beta.example.org
## 192.168.1.100                                //IP形式
## 192.168.1.110## www[001:006].example.com## [dbservers]
## db01.intranet.mydomain.net
## db02.intranet.mydomain.net
## 10.25.1.56
## 10.25.1.57## db-[99:101]-node.example.com

也可以将主机组组合成一个组

## [all:children]
## webservers                                   //子组
## dbservers

ansible all --list-hosts
列出默认清单文件中的所有受控主机

ansible webservers --list-hosts
列出某个组里的所有受控主机

实例

按照下方所述,在控制节点ansible.example.com 上安装和配置Ansible:
安装所需的软件包
创建名为/home/student/ansible/inventory的静态清单文件, 以满足以下需求:
node1是dev主机组的成员
node2是test主机组的成员
node3是prod主机组的成员
prod组是webservers主机组的成员

创建名为/home/student/ansible/ansible.cfg的配置文件, 以满足以下要求:
主机清单文件为/home/student/ansible/inventory
playbook中使用的角色的位置包括/home/student/ansible/roles

[root@ansible ~]# vim /etc/sudoers.d/student
student ALL=(ALL) NOPASSWD: ALL
[root@ansible ~]# for a in node{1..3}
> do
> scp /etc/sudoers.d/student root@$a:/etc/sudoers.d/
> done[root@ansible ~]# su - student
[student@ansible ~]$ mkdir ansible
[student@ansible ~]$ cd ansible/
[student@ansible ansible]$ vim inventory
[dev]
node1[test]
node2[prod]
node3[webservers:children]
prod[student@ansible ansible]$ cp /etc/ansible/ansible.cfg .
[student@ansible ansible]$ vim ansible.cfg
inventory      = /home/student/ansible/inventory
roles_path    = /home/student/ansible/roles
host_key_checking = False
remote_user = student[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False[student@ansible ansible]$ mkdir roles
[student@ansible ansible]$ ansible all -m ping
node3 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/libexec/platform-python"},"changed": false,"ping": "pong"
}
node1 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/libexec/platform-python"},"changed": false,"ping": "pong"
}
node2 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/libexec/platform-python"},"changed": false,"ping": "pong"
}

Ansible的配置文件相关推荐

  1. Ansible — ansible.cfg 配置文件解析

    目录 文章目录 目录 配置类型 ansible.cfg 配置文件 [defaults] Section [ssh_connection] Section 配置类型 Ansible 支持以下配置类型,读 ...

  2. ansible安装与配置文件

    ansible 安装 源码安装 git clone git://github.com/ansible/ansible.git --recursive cd ./ansible source ./hac ...

  3. 实例学习Ansible系列:配置文件ansible.cfg的设定与使用

    知识点:Ansible中通过多层次的ansible.cfg的设定,利用不同目录结构下的配置文件的作用域,还可以结合ANSIBLE_CONFIG环境变量进行自行指定,较为方便和灵活. 环境准备 [roo ...

  4. Ansible配置文件ansible.cfg详解

    Ansible是一个系列文章,我会尽量以通俗易懂.诙谐幽默的总结方式给大家呈现这些枯燥的知识点,让学习变的有趣一些. 前言 此时外面小雨淅淅沥沥的下着,周末,慵懒的周末,无聊到极点才打开电脑,回头一看 ...

  5. 02管理Ansible配置文件

    管理Ansible配置文件 1.配置Ansible 2.配置文件的优先级 3管理配置文件的设置 4.配置连接 4.1清单位置 4.2连接设置 4.3升级特权 4.4非ssh连接 4.5配置文件注释 5 ...

  6. Chapter2.2 管理Ansible配置文件

    2.管理Ansible配置文件 2.1 目标 学完这一章节,学员可以描述Ansible配置文件的位置,Ansible如何选择配置文件,如何修改配置文件. 2.2 配置Ansible Ansible的配 ...

  7. Centos8 安装并使用Ansible(一)

    Ansible 是一个开源的配置管理工具,我们用于自动化任务.部署应用程序.使用 Ansible,您可以自动执行日常任务,例如更新系统.安装软件.和配置服务. 本文将介绍Ansible基本信息.为什么 ...

  8. Ansible的安装及部署

    Ansible的安装及部署 1 实验环境 2 Ansible的安装 3 Ansible的基本信息 4 构建Ansible清单 4.1 全局清单 4.2 设定受控主机的组 4.2.1 清单查看 4.2. ...

  9. ansible自动化运维(二)——环境部署及常用模块的使用

    实验环境 主机 ip server1(主控端) 172.25.6.1 server2(节点) 172.25.6.2 server3(节点) 172.25.6.3 一.环境部署 ansible的配置文件 ...

最新文章

  1. 天津理工大学c语言实验2答案,天津理工大学-c语言上机报告2.doc
  2. 20190429 照片里面的GPS信息确实会暴露经纬度
  3. FM,FFM及其实现
  4. Mac下IntelliJ IDEA常用快捷键
  5. 自定义ContentProvider
  6. 谈谈BFC与ie特有属性hasLayout
  7. Java多窗口编程示例
  8. 使用PMBus总线监控电源管理芯片UCD90120
  9. 7.nestjs文件上传
  10. 如何判断是pc端还是移动端
  11. linux默认的分区是fat,linux下开机自动挂载FAT分区
  12. Flutter 实现一款简单的音乐播放器
  13. Matlab求解椭球上运动的点B,满足到定点A、C的距离之和最短
  14. Warning: continue targeting switch is equivalent to break. Did you mean to use continue 2? 故障
  15. SDHC ADMA和SDMA区别
  16. 抽象类的作用是什么?
  17. XSS之xss-labs-level3
  18. @用Python的turtle库画一个奥运五环!
  19. 小波学习笔记——模极大值去噪
  20. python绘制派大星_简笔画:如何使用Flash绘制派大星 看完你就知道了

热门文章

  1. 无线蓝牙耳机排行榜是什么?TWS真无线蓝牙耳机排行
  2. 【历史上的今天】7 月 31 日:“缸中之脑”的提出者诞生;Wi-Fi 之父出生;USB 3.1 标准发布
  3. [TRT] TensorRT was linked against cuBLAS/cuBLAS LT 11.5.1 but loaded cuBLAS/cuBLAS LT 11.4.1
  4. 2.文件系统及相关命令
  5. 用虹科Pico汽车示波器计算CAN总线负载率
  6. matlab 多普勒效应,《利用MATLAB仿真多普勒效应.doc
  7. LKD-虚拟文件系统
  8. html文字滑动时改变颜色,css实现滚动时选中区域字体颜色加深的示例代码
  9. 7款小“神器”火了!让 Windows 效率起飞
  10. 百万级QPS,支撑淘宝双11需要哪些技术