Linux自动化运维(Shell与Ansible)(微课版) 课件 6-4-Ansible配置文件及主要参数_第1页
Linux自动化运维(Shell与Ansible)(微课版) 课件 6-4-Ansible配置文件及主要参数_第2页
Linux自动化运维(Shell与Ansible)(微课版) 课件 6-4-Ansible配置文件及主要参数_第3页
Linux自动化运维(Shell与Ansible)(微课版) 课件 6-4-Ansible配置文件及主要参数_第4页
Linux自动化运维(Shell与Ansible)(微课版) 课件 6-4-Ansible配置文件及主要参数_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Ansible自动化概述任务4:Ansible配置文件及主要参数目录/Contents01Ansible配置文件02ansible.cfg主要参数01Ansible配置文件Ansible配置文件Ansible为管理控制节点和受管节点之间的交互行为,提供了多种工具,包括INI格式的ansible.cfg文件、环境变量、命令行选项、Playbook的关键字和变量等。在所有这些工具中,每个工具的优先级都不同,Ansible会按照优先级查找配置信息。常见的方法是使用配置文件ansible.cfg来控制Ansible的行为。当Ansible执行时,它会按照以下顺序搜索并使用配置文件:如果设置了环境变量ANSIBLE_CONFIG,则使用该变量指定的文件作为配置文件。比如/opt/ansible/ansible.cfg。如果当前目录中存在ansible.cfg文件,则使用该文件作为配置文件,如/home/rhce/auto-manager/ansible.cfg。如果用户家目录中存在.ansible.cfg文件,则使用该文件作为配置文件,如/home/rhce/.ansible.cfg。如果在上述3个位置都没有找到配置文件,则使用默认配置文件/etc/ansible/ansible.cfg。Ansible配置文件用户可以在控制节点上的多个位置选择配置文件,按照最高优先级到最低优先级(最容易被覆盖)的顺序,ansible.cfg文件将按以下顺序进行搜索:ANSIBLE_CONFIG环境变量指定的ansible.cfg文件→执行Ansible命令的目录中的ansible.cfg文件→当前用户家目录中~/.ansible.cfg→/etc/ansible/ansible.cfg。设置ANSIBLE_CONFIG环境变量,使用export命令可以将ANSIBLE_CONFIG环境变量设置为指定的配置文件路径:[rhce@ansibleplaybook]$exportANSIBLE_CONFIG=/opt/project/ansile/ansible.cfg运行以下命令检查Ansible是否使用了新的配置文件路径:[rhce@ansibleplaybook]$ansible--version|grep-icfgconfigfile=/opt/project/ansile/ansible.cfg如果输出中显示了新的配置文件路径,则表示ANSIBLE_CONFIG环境变量已成功设置。使用export命令和-n选项可以取消ANSIBLE_CONFIG环境变量的设置:[rhce@ansibleplaybook]$export-nANSIBLE_CONFIG=/opt/project/ansile/ansible.cfg02ansible.cfg主要参数ansible.cfg文件ansible.cfg是Ansible的主配置文件,它可以控制Ansible的行为和运行方式。ansible-config命令用于查看和管理Ansible的配置信息。通过这个命令,用户可以获取Ansible的配置文件路径、查看配置项的值、修改配置项的值等。ansibe.cfg文件采用INI格式存储配置数据。在文件中,用方括号标识的部分称为配置段。每个配置段都有一组相关的配置选项,用于控制Ansible的不同行为和功能。#生成一个禁用了所有默认配置的ansible.cfg文件ansible-configinit--disabled>ansible.cfg#生成禁用了所有默认配置的ansible.cfg文件,其中包含所有可能的配置项ansible-configinit--disabled-tall>ansible.cfgansible.cfg文件ansible.cfg常用配置段详细信息:序号配置段名称描述1[defaults]默认配置段,该配置段设置的值会作为全局默认值,包含一些常用的配置指令,如清单文件路径、远程用户、主机密钥检查等参数。主要的指令有inventory、remote_user、ask_pass、gather_facts、host_key_checking等2[privilege_escalation]特权升级配置段,包含一些特权升级相关的配置指令,如使用sudo或su提升执行权限等。主要的指令有become、become_method、become_user、become_ask_pass等3[persistent_connection]持久化连接配置段,包含一些持久化连接相关的配置指令,如ControlMaster、ControlPath和ControlPersist等指令4[connection]默认连接配置段,包含一些连接类型相关的配置指令ControlMaster、ControlPath和ControlPersist等指令5[selinux]SELinux配置段,包含一些SELinux相关的配置选项,如在执行任务时是否启用SELinux策略等ansible.cfg文件ansible.cfg常用配置段详细信息:序号配置段名称描述6[diff]差异配置段,包含一些控制任务运行时显示差异信息的配置选项,如任务运行时是否显示差异信息等7[inventory]清单文件配置段,包含一些与Ansible清单文件相关的配置选项,如清单文件路径、默认的清单文件名等8[galaxy]Galaxy配置段,包含一些与AnsibleGalaxy相关的配置选项,如默认的角色、下载路径等9[netconf_connection]NETCONF连接配置段,包含一些与NETCONF连接相关的配置选项,如默认的NETCONF端口号和用户名等10[paramiko_connection]Paramiko连接配置段,Paramiko是一个用于实现SSH协议的Python库,是Ansible的一种连接插件。该配置段包含banner_timeout、look_for_keys、use_rsa_sha2_algorithms等指令11[jinja2]Jinja2配置段,包含一些与Jinja2相关的配置选项,如Jinja2模板文件路径等12[tags]标签配置段,包含一些与标签相关的配置选项,如默认的标签列表等连接设置Ansible采用无代理模式自动化管理受管节点,默认情况下,Ansible使用SSH连接受管主机。控制Ansible如何连接受管主机的指令在[defaults]部分设置。当Ansible控制主机连接受管主机时,默认使用的用户名与运行Ansible命令的本地用户的名称相同。若要指定不同的远程用户,需要将remote_user设置为该用户的名称。[defaults]inventory=./inventoryremote_user=rhceask_pass=false如果设置指令ask_pass=true,远程连接的用户需要输入账户和密码。如果Ansible控制节点的管理用户配置了SSH私钥,通过指令ask_pass=false,在受管主机上进行远程用户身份验证,可以实现免密码登录。sudo提权sudo是一种在Linux操作系统中执行特权命令的方式。使用sudo可以让普通用户在需要时执行root管理用户权限级别的操作,而不需要切换到root用户。在使用sudo提权时,用户需要在命令前面加上sudo,系统会提示用户输入自己的密码,如果密码输入正确,系统就会执行该命令。sudo的权限可以通过配置文件/etc/sudoers来管理,这个文件定义了哪些用户可以执行哪些命令。在RHEL、CentOS上,/etc/sudoers的默认配置允许wheel组中的所有用户在输入密码后使用sudo获取root权限。在Ubuntu中,/etc/sudoers的默认配置允许sudo组中的所有用户在输入密码后使用sudo获取root权限。例如,用户rhce在不输入密码的前提下使用sudo成为root用户,可将如下指令写入/etc/sudoers.d/rhce文件。##password-lesssudoforAnsibleuserrhceALL=(ALL)NOPASSWD:ALL特权升级在Ansible自动化运维场景中,通常建议使用非特权用户身份连接远程主机,然后通过特权升级获得root用户身份的管理权限。特权升级是指在连接到远程主机后,将非特权用户的权限提升到更高级别,对应的指令可以在[privilege_escalation]中配置。[privilege_escalation]become=rtuebecome_method=sudobecome_user=rootbecome_ask_pass=false例如,Ansible管理用户rhce可以通过基于SSH密钥的身份连接受管主机,并且可以使用sudo以root用户身份运行命令而不必输入密码。ansible.cfg文件如下所示:配置参数如下示例是典型的ansible.cfg文件,其中定义了Ansible默认的操作和特权升级相关指令,描述信息如下表所示。[defaults]inventory=./inventoryremote_user=rhceask_pass=falsehost_key_checking=false[privilege_escalation]become=truebecome_method=sudobecome_user=rootbecome_ask_pass=falseansible.cfg配置文件由多个部分组成,每个部分都有一个方括号标识的配置段名称。其中,[defaults]、[privilege_escalation]是最常用的配置段。序号指令描述1inventory用于指定清单文件的位置,默认情况下,Ansible会搜索/etc/ansible/hosts来查找主机清单文件该指令可以设置其他清单来覆盖默认值。比如,inventory=./inventory、inventory=/opt/playbook/inventory2remote_user要在受管主机上登录的用户的名称。如果未指定,则使用当前用户的名称,比如,remote_user=rhce3ask_pass是否提示输入SSH密码。如果使用SSH公钥进行身份验证,则可以设置为false。如果设置为false,不管是root用户还是普通用户,都需要使用ssh-keygen和ssh-copy-id配置无密钥验证4host_key_checking是否开启主机密钥检查,即在SSH连接时检查主机密钥,可防止中间人攻击,默认值为true5become是否使用特权升级,默认为false。如果该指令设置为true,则在远程连接后会自动在受管主机上切换用户以激活特权升级(通常切换为root

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论