版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux自动化运维项目6:Ansible自动化概述
学习目标【知识目标】了解自动化和IT基础设施自动化基本概念。了解Ansible基本概念和基本架构。了解Ansible清单文件和配置文件主要参数的功能。【技能目标】掌握Ansible安装方法,能够在RHEL、Ubuntu等Linux发行版中安装Ansible。掌握Ansible清单文件和配置文件主要参数的使用方法。掌握清单文件的构建方法和ansible.cfg文件的基本配置。【素质目标】培养读者的信息素养和学习能力,使其能够灵活运用正确的学习方法和技巧,快速掌握新知识和技能,并不断学习和进步。培养读者的职业道德素养,使其明确在自动化运维中的职业责任与义务,引导读者树立正确的职业态度。培养读者严谨的逻辑思维能力,使其在解决问题时使用逻辑思维,提高自主学习能力。Ansible自动化概述任务1:Ansible简介目录/Contents0203Ansible基本概念Ansible基本架构01IT基础设施自动化01IT基础设施自动化自动化自动化是指通过技术手段,在减少人工协助的情况下执行各项任务,使工作或过程自动完成。目前,自动化已经应用于各种行业和领域。自动化技术和人工智能经常一起使用,以实现更高效、更准确和更智能的自动化过程。通过结合机器学习和自动化技术,可以实现自动化的文本分类、图像识别和语音识别等任务。自动化可以帮助用户加快流程变革和环境拓展,构建持续集成、持续交付和持续部署(CI/CD)工作流。自动化的种类有很多,其中包括IT自动化、业务自动化、机器人流程自动化、工业自动化、AI应用部署和管理自动化等。IT基础设施自动化IT基础设施是指企业运行和管理IT环境所需的基础组件和技术,这些基础组件和技术包括硬件、软件、网络、操作系统、安全设备和数据存储等,它们共同提供各种IT服务和解决方案。随着云计算技术的快速发展,计算资源和服务变得更加灵活和可扩展,IT基础设施的规模也在不断扩大。现代数据中心通常包含数百甚至数千个机架,以及数以万计的服务器、存储设备和网络设备等。IT基础设施已经从传统数据中心中的物理硬件逐步转移到虚拟化、容器、云计算等混合云或多云环境中。云计算技术的变革推动了软件架构和开发模式的变革,应用发布流程和发布频率发生了很大的变化。IT基础设施自动化为了满足复杂多变的业务要求,现代数据中心采用了各种自动化和智能化技术,以提高自身的的效率和可管理性。例如,自动化的服务器配置、存储管理和网络管理可以大大减少人工干预,减少人为错误和故障,提高数据中心的效率和可靠性。通过Ansible、Puppet、SaltStack、Terraform等自动化部署和配置工具,可自动部署和配置应用程序及其相关组件;基于Jenkins、GitLab等持续集成和持续部署工具,可自动对软件进行测试、构建和部署,从而提高软件的质量和开发效率。这种自动化部署和配置可以大大减少发布流程中的人工干预,提高发布效率和质量。IT基础设施自动化为了实现IT基础设施自动化,基础设施即代码应运而生。基础设施即代码(InfrastructureasCode,IaC)是通过代码而非手动流程来管理和置备基础设施的方法。它使用编码语言(如Ruby、Python)来自动化IT基础设施的配置,将IT基础设施的配置、部署、运维等操作以代码的形式进行编写和管理。例如开发人员或运维人员每次想要开发、测试或部署软件时,手动配置和管理服务器、操作系统,数据库连接、存储和其他基础设施元素的需求,可以使用代码定义、配置和管理软件基础设施来实现,这样可以提高一致性并减少错误和手动配置,能够以更快的速度、更低的风险和更低的成本开发、部署和扩展云应用程序。02Ansible基本概念Ansible基本概念Ansible是一个开源IT自动化引擎,能够自动化置备、配置管理、应用部署、编排等IT流程,通过软件工程的方法重新定义和描述IT设施基础设施,用自动化技术替代重复和手动操作,可提高工作效率并降低人工干预的风险。Ansible起源于计算机工程师MichaelDeHaan(迈克尔·德哈恩)在2012年发起的AnsibleWorks项目。DeHaan曾经在红帽公司工作,离开红帽公司后,随着云计算技术和DevOps的流行,他认为当时市面上的自动化工具都过于复杂,希望能够开发一种简单易用的自动化运维工具。德哈恩选择用Python语言开发Ansible,并在GitHub上开源了项目,且在开发过程中汲取了Cobbler、Puppet、Chef等项目开发的经验教训。在接下来的几年中,Ansible得到了广泛的关注和使用,并成为自动化运维领域的一个知名项目。在2015年,红帽公司将Ansible作为核心产品之一收入旗下,并继续推广和开发此工具。在收购Ansible后,红帽公司不仅继续维护Ansible的开源版本,还推出了商业版本,通过制定企业级自动化方案,为企业用户提供更多的支持和服务。Ansible可应用于绝大多数Linux发行版中,如RHEL、CentOS、openSUSE、Debian、Ubuntu、华为openEuler等系统。通过不同的模块和插件,Ansible还可以用于Windows、FreeBSD、macOS等操作系统。红帽公司在2021年12月正式发布了AnsibleAutomationPlatform(AAP)。这个平台是在现有的Ansible开源项目的基础上构建的,增加了更多面向企业的功能和集成。AAP的推出是红帽公司在扩展Ansible的影响力和能力方面的一个重要步骤,特别是在企业环境中,通过提供一整套工具来支持各种IT领域的自动化。AAP可以实现红帽产品紧密集成,如RedHatEnterpriseLinux、RedHatOpenShift和RedHatOpenStack,提供一个无缝的自动化体验跨越整个IT堆栈。还支持与多个云服务提供商和技术解决方案的集成,增强了其多云和混合云环境中的应用能力。Ansible基本概念Ansible使用简单的YAML来编写配置文件,不需要编写复杂的代码。简单易用Ansible不需要在目标系统上安装任何代理软件,可以基于SSH进行远程操作。无须安装客户端Ansible可以管理各类系统和网络设备,支持多种操作系统,还可以进行多种类型的任务自动化。高效实用Ansible提供大量的模块、插件、角色、集合并行化执行操作,可管理大规模的服务器和网络设备,完成大规模部署任务。支持大规模部署:Ansible提供可读性高的配置文件,使用版本控制工具,易于维护和回滚。易于维护Ansible支持多种安全机制,以保护机密信息不被窃取或泄露。Ansible支持密钥验证和TLS/SSL加密来确保数据传输的安全性,可以使用ansible-vault来加密配置文件中的敏感信息。安全性Ansible的设计目标如下:Ansible基本概念03Ansible基本架构Ansible基本架构Ansible可以满足自动化云环境的设置、配置管理、应用程序部署、内部服务编排等IT需求。Ansible被设计用于多层部署,通过描述所有系统的相互关系将IT基础设施代码化,以实现对复杂的IT环境的管理。与Puppet、Chef等IT自动化工具不同的是,Ansible不需要使用代理或其他自定义安全基础设施,因此易于部署和使用。此外,它使用基于YAML格式的AnsiblePlaybook自动化文件,可以让用户以接近英语的方式描述自动化工作。Ansible基本架构Ansible基本架构中的核心概念如表所示:序号名称描述1ControlNode控制节点,安装Ansible且用于管理远程节点(受管主机)的系统都可以称为控制节点,控制节点通常使用SSH连接远程主机和设备2ManagedNode受管节点或者受管节点,被Ansible控制节点管理的主机或设备3Inventory清单文件,用于存储远程主机和设备的信息,如IP地址、主机名称、组名等。Ansible通过清单文件来管理远程主机和设备4User使用Ansible的用户,包括系统管理员、运维工程师等5PlaybookAnsible的配置脚本文件,用于定义需要执行的任务和操作6Public/PrivateCloudAnsible可以在公有云或私有云中运行,可以管理云上的资源7PluginAnsible提供的插件,用于扩展Ansible的功能,比如lookup插件、filter插件、callback插件、netconf插件等8ModuleAnsible模块。模块也可以理解成在受管节点(通常是远程系统)上执行自动化任务的插件。Ansible内置了大量的模块,比如文件操作、包管理、用户管理等模块,用户也可以使用Python或者PowerShell自行编写模块以执行特定任务。通过Ansible模块,可以实现对目标系统的控制和配置9APIAnsible提供的API,可以通过脚本和程序来调用Ansible的功能10NetworkingAnsible支持管理网络设备,如交换机、路由器等11Host被Ansible管理的主机或设备12CMDBAnsible可以将收集到的配置信息与其他CMDB(ConfigurationManagementDatabase,配置管理数据库)工具进行集成,通过可视化方式来展示IT环境中的配置信息,使IT运维团队能够更好地了解整个IT环境的配置信息,便于计划和管理IT资源谢谢Ansible自动化概述任务2:Ansible安装方式与目录结构01Ansible安装方式Ansible安装方式Ansible由若干个组件组成,包括ansible-core、ansible-galaxy、ansible-lint等,这些组件都是Ansible的一部分,并且能够协同工作,为用户提供更加强大和全面的自动化运维功能。ansible-core是Ansible的核心组件,包含Ansible的核心功能。对于控制节点(运行Ansible的机器),可以安装在具有Python3.9或更新版本的Linux发行版上,包括RHEL、Debian、Ubuntu、macOS和WindowsSubsystemforLinux(WSL)发行版下的Windows等,目前Windows本身不支持作为控制节点。受管节点(Ansible管理的机器)不需要安装Ansible,但需要Python2.7或Python3.5~Python3.11来运行Ansible库代码。控制节点和受管节点所需的Python的当前和历史版本如下:序号ansible-core版本控制节点Python版本受管节点Python版本12.11Python2.7、Python3.5~Python3.9Python2.6~Python2.7、Python3.5~Python3.922.12Python3.8~Python3.10Python2.6~Python2.7、Python3.5~Python3.1032.13Python3.8~Python3.10Python2.7、Python3.5~Python3.1042.14Python3.9~Python3.11Python2.7、Python3.5~Python3.11Ansible安装方式Ansible可以安装到RHEL、CentOS、Ubuntu、Debian、华为openEuler、麒麟等多个Linux发行版上。其主要的安装方式有以下几种:源码安装:通过下载Ansible的源码并手动编译安装,安装目录通常是用户指定的目录。pip安装:通过Python的包管理器pip安装Ansible,安装目录通常由包管理器默认指定。包管理器安装:使用不同Linux发行版自带的包管理器(如apt、yum等)安装Ansible,安装目录通常由包管理器默认指定。git安装:通过gitclone的方式安装Ansible。yum和apt包管理器安装安装Ansible以为Ubuntu22系统为例:添加官方的Ansible仓库。sudoaptupdatesudoaptinstallsoftware-properties-commonsudoadd-apt-repository--yes--updateppa:ansible/ansible安装Ansible:sudoaptinstallansible验证安装ansible--version以CentOSStream9和Rocky9系统为例:添加Ansible仓库:sudoyuminstallepel-release安装Ansible:sudoyuminstallansible验证安装ansible--version目前主流的Linux发行版,广泛使用的软件包管理工具是yum和apt,它们为Linux系统的软件安装、升级和管理提供了命令行界面,并基于不同的包管理系统设计,以满足特定用户群体的需求。pip包管理器安装Ansible安装Python3的包管理器pip,并更新pip版本[rhce@control~]$sudoyum-yinstallpython3-pip[rhce@control~]$pip3install--upgradepip使用pip包管理器安装Ansible
[rhce@control~]$pip3installansible--user使用ansible--version命令查看Ansible版本信息。[rhce@control~]$ansible--version配置pip镜像站点为清华大学的镜像站点,加快Python包的下载和安装速度,[rhce@control~]$mkdir~/.pip[rhce@control~]$vim~/.pip/pip.conf[global]timeout=6000index-url=/simpletrusted-host=pip是Python附带的包管理器,允许用户安装和管理Python库及模块,也可用于安装和管理不属于Python标准库的附加包,它可以在线搜索Python包索引PyPI库中的软件包,并将它们安装到系统中。常见的Linux发行版,比如红帽RHEL、Fedora、CentOSStream、Rocky、华为openEuler、Ubuntu等,都可以使用pip安装ansible。02目录结构Ansible的主要目录结构安装Ansible的步骤需要根据操作系统及其版本来确定,使用不同的方式安装和部署Ansible,会导致软件安装目录、配置文件、可执行命令、插件等的存放位置不同。以RHEL、CentOS、华为openEuler等Linux发行版包管理器为例,使用yum方式安装Ansible的主要目录结构如下:/etc/ansible:存储系统级别的配置文件,如ansible.cfg、hosts等。/usr/share/ansible:存储Ansible的文档、示例、插件等。/usr/bin/ansible:存储Ansible命令的可执行文件,例如ansible、ansible-config、ansible-galaxy、ansible-playbook、ansible-vault、ansible-doc、ansible-inventory等。/usr/lib/python×.×/site-packages/ansible:存储Ansible的Python模块。其中,×.×代表Python的版本号。这个目录中存储了Ansible所需要的Python模块和库,这些模块和库用于在Ansible的命令和脚本中进行Python代码的执行。~/.ansible:用户级别的配置文件和目录,如ansible.cfg、roles等。在RHEL、CentOS、华为openEuler等Linux发行版中,可以使用rpm-qlansble命令,在Debian、Ubuntu等Linux发行版中,可以使用dpkg-Lansible命令,以查询Ansible的安装路径、配置文件等。Ansible的主要目录结构也可以通过ansible--version命令查看,该命令输出当前Ansible的版本号、配置文件路径、模块搜索路径、Python模块位置、Ansible集合(collection)和角色(role)位置以及Ansible可执行文件位置等信息。[rhce@control~]$ansible--versionansible[core2.16.5]configfile=/etc/ansible/ansible.cfgconfiguredmodulesearchpath=['/home/rhca/.ansible/plugins/modules','/usr/share/ansible/plugins/modules']ansiblepythonmodulelocation=/usr/lib/python3/dist-packages/ansibleansiblecollectionlocation=/home/rhca/.ansible/collections:/usr/share/ansible/collectionsexecutablelocation=/usr/bin/ansiblepythonversion=3.10.12(main,Nov202023,15:14:05)[GCC11.4.0](/usr/bin/python3)jinjaversion=3.0.3libyaml=TrueAnsible的主要目录结构ansible--version输出信息:序号名称描述1configfile当前使用的Ansible配置文件的路径。在执行Ansible命令时,Ansible会按照一定的优先级查找配置文件。这个文件包含Ansible的许多全局设置,如连接方式、插件路径、环境变量等2configuredmodulesearchpathAnsible模块搜索的配置路径。这个路径是在Ansible配置文件(ansible.cfg)中指定的,是Ansible在执行时用来查找模块的路径。如果没有配置,那么Ansible会使用默认的模块搜索路径3ansiblepythonmodulelocationAnsible的Python模块的位置,包含Ansible核心模块、插件和其他相关Python库。这个路径是Ansible在运行时寻找和加载Python模块的重要路径。4AnsiblecollectionlocationAnsible集合文件所在的位置。Ansible集合是一组功能相关的Ansible模块和资源的集合,通常是由第三方组织或个人开发并发布的。这些集合可以通过AnsibleGalaxy工具安装和管理5executablelocationAnsible可执行文件的位置6pythonversionPython的版本信息7jinjaversionJinja模板引擎的版本号,Jinja是Ansible用于模板处理的引擎,它允许在AnsiblePlaybooks中使用模板语法8libyaml系统支持YAML解析库libyaml谢谢Ansible自动化概述任务3:清单文件目录/Contents0102清单文件简介清单文件格式03在清单文件中定义别名04清单文件变量01清单文件简介清单文件简介IT基础设施环境中存在大量的服务器、云主机等设备。清单(inventory)文件是Ansible用来描述目标主机和主机组的文件。在清单文件中,用户可以指定每个主机的IP地址、主机名、组名、变量、连接方式等信息。Ansible使用清单文件来确定要管理的主机集合,以及在执行任务时如何与这些主机进行交互,还可以使用模式(pattern)来选择清单文件中的主机或组,针对IT基础设施中的多个受管节点执行自动化任务。清单文件简介Ansible的清单文件有静态清单文件和动态清单文件两种类型。静态清单文件:静态清单文件可以通过文本文件来定义,在文件中直接列出要管理的主机的主机名或IP地址。静态清单文件是Ansible常见的清单文件类型,这种清单文件适用于主机数量固定,且这些主机的IP地址或主机名不会经常发生变化的环境。动态清单文件:动态清单文件可以根据需要在运行自动化任务时由外部脚本或程序生成,动态清单文件使用外部数据源,如CMDB或云平台API来动态查找主机,并生成清单文件。动态清单文件适用于管理数量较多、动态变化的主机,比如AmazonEC2实例、VMware虚拟机、OpenStack实例等。Ansible也提供了一些官方的清单插件用于动态生成清单文件。清单文件简介最简单的清单文件是一个包含主机和组列表的文件。该文件的默认位置为/etc/ansible/hosts。通常的做法是不使用该文件,而在Ansible配置文件中指定一个清单文件的位置,或者利用ansible和ansible-playbook命令来运行Ansible临时命令(即AdHoc命令)和Playbook,可使用-i<path>选项指定不同的清单文件,其中path是所需清单文件的路径。清单文件定义了Ansible管理的一批主机,这些主机也可以分配到组中,以进行集中管理。组可以包含子组,主机也可以是多个组的成员。清单文件还可以设置应用到它所定义的主机和组的变量。02清单文件格式清单文件简介Ansible的清单文件主要有两种格式,即INI格式和YAML格式,广泛应用于生产环境中。INI格式:INI格式的清单文件由若干组和主机的信息构成,具有节(section)和键值对的结构。它使用简单的键值对来表示配置项,每个键值对由一个名称(键)和一个值组成,以等号“=”分隔。键值对可以分组存储在节中,每个节用方括号“[]”标识。每个节代表一个主机组,每个键值对代表一个主机及其相关信息。YAML格式:YAML是一种轻量级的数据序列化格式,非常简洁且易于阅读,适合用于维护规模更大的主机信息。其语法基于缩进(indentation),YAML中的键值对使用冒号“:”分隔,all关键字表示一个包含所有主机的组,hosts关键字表示主机信息。清单文件简介INI格式的清单文件基本格式如下:01[group1]0102[group2]0304[group_name1]host1ansible_host=01host2ansible_host=02[group_name2]host3ansible_host=03host4ansible_host=04在示例中,INI格式的清单文件包含受管主机的主机名或IP地址的列表,如、、0、1分别表示4个主机,且不属于任何主机组。group1和group2是两个主机组,用于对主机进行分类。group1中包含、、01、02这4个主机,group2中包含、、03、04这4个主机。group_name1和group_name2是两个主机组,每个组中有两个主机,变量ansible_host用于指定主机的IP地址。清单文件简介YAML格式的清单文件基本格式如下:all:hosts:::0:1:children:group1:hosts:::01:02:group2:hosts:::03:04:在示例中,顶层的all表示Ansible清单的默认组,它包含所有的主机和主机组。hosts表示一个包含所有主机的键,每个主机都是一个键值对,其中键是主机的名称或IP地址,值可以为空或是一个字典。children表示包含所有主机组的键。每个主机组都是一个键值对,其中键是组的名称,值是一个包含所有该组主机的键值对字典。在本示例中,group1中包含、、01和02这4个主机。同样,group2中包含、、03和04这4个主机。group_name1:hosts:host1:ansible_host:01host2:ansible_host:02group_name2:hosts:host3:ansible_host:03host4:ansible_host:04all和ungrouped在Ansible清单文件中,有两个主机组始终存在,all主机组包含清单文件中定义的所有主机,ungrouped主机组表示在清单文件中未被分组的主机。all和ungrouped是隐式的,不会出现在清单文件中。在上面的清单文件中,all主机组将包含host1、host2和host3这3个主机,而ungrouped主机组包含这个主机。[webserver]host1host2[database]host3嵌套组在Ansible清单文件中,可以定义嵌套组,其中父组包含多个子组。这可以通过在清单文件中创建一个组并在其中创建另一个组来实现。例如,用户可以创建一个名为webserver的父组,该组包含两个分别名为app1和app2的子组,每个子组都包含一组主机。通过嵌套的方式可以指定父组来执行任务或应用模板,以同时处理多个主机。在INI格式中,可以在方括号中定义父组,并用冒号分隔父组的名称和children属性。在上述示例中,group_name是父组的名称,group1和group2是子组的名称,所有子组中的主机都会被归到父组中。[group_name:children]group1group2添加主机范围如果有很多具有相似模式的主机,可以通过指定数值或字母范围来简化Ansible主机清单文件。指定范围的语法格式如下:host[start:end:step]#host可以是主机名或IP地址,start表示起始数字,end表示结束数字,step表示步长。范围匹配start~end(含)的所有值匹配名为~的50个机器:server[01:20].www[01:50].匹配名为~的所有主机:匹配/24~/24网络中的所有IPv4地址(~55):192.168.[100:105].[0:255]添加主机范围匹配名为、、的3个主机:[webservers]www[01:30:2].[a:c].在定义主机的数值范围时,可以指定序列号之间的增量,也就是以X:Y:Z的格式来指定序列号范围。其中,X表示起始值,Y表示水结束值,Z表示步长。www[01:30:2]表示www01~www30,步长为2的所有主机,将匹配www01、www03、www05、……、www49这些主机,但不匹配www00、www02、……、www50这些主机,这样就可以选择性地包含或排除某些主机03在清单文件中定义别名在清单文件中定义别名可以在清单文件中使用主机变量定义主机别名,别名是自定义的名称,用于表示主机。引用主机时可直接调用别名,而无须知道它们的完整名称。[web_servers]app1_hostansible_host=app2_hostansible_host=在上述示例中,可以使用别名app1_host和app2_host分别代替实际的主机名称和。比如在运行Playbook时,使用app1_host来指定主机,Ansible会自动将其解析为。04清单文件变量清单文件变量在清单文件中指定Playbook使用的变量,这些变量仅应用到特定的主机或主机组。通常,在特殊目录中定义清单文件变量,而不直接在清单文件中定义。[groupname]node1http_port=82maxRequestsPerChild=202node2http_port=92maxRequestsPerChild=303Ansible使用INI格式来定义清单文件。在清单文件中,我们可以设置主机或主机组变量。包含主机变量的INI格式清单文件:谢谢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,系统会提示用户输入自己
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2019版广西师范版 高中体育与健康 必修 10~12年级下篇 《第一章 健康行为的养成》大单元整体教学设计2020课标
- 《课电机正反转》课件
- 《级ACCESS数据库》课件
- 主题活动吃火锅真暖和
- 三年级数学五千以内加减混合两步运算题竞赛考核练习题
- 妇女节主题班队活动
- 危重患者突发事件应急处理
- 知觉的整体性微电影分库周欣然
- 住院病案首页数据质量评分表
- 医疗废物培训
- 天津市塘沽第二中学2024-2025学年七年级上学期期中考试数学试卷(无答案)
- 语文-重庆市2025年普通高等学校招生全国统一考试11月调研试卷(康德卷)试题和答案
- DB43T 2635-2023 大口径涂塑复合钢管通 用技术要求
- 初中一年级上学期数学《一元一次方程的应用-行程问题》课件
- 企业乒乓球活动外聘教练协议
- 人工智能与颈椎图像识别:应用前景与挑战
- 2024-2025部编版语文一年级上册语文园地八
- 一把手讲安全领导力与执行力考核试卷
- 租赁公司财务制度
- 2024-2030年祛痘化妆品行业市场深度分析及发展策略研究报告
- 医疗责任险行业研究报告
评论
0/150
提交评论