Linux自动化运维(Shell与Ansible)(微课版) 课件 12-1-常用的自动化管理模块_第1页
Linux自动化运维(Shell与Ansible)(微课版) 课件 12-1-常用的自动化管理模块_第2页
Linux自动化运维(Shell与Ansible)(微课版) 课件 12-1-常用的自动化管理模块_第3页
Linux自动化运维(Shell与Ansible)(微课版) 课件 12-1-常用的自动化管理模块_第4页
Linux自动化运维(Shell与Ansible)(微课版) 课件 12-1-常用的自动化管理模块_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

Linux自动化运维项目12:Ansible自动化管理

学习目标【知识目标】了解软件包管理模块、用户和身份验证管理模块主要功能。了解系统和服务管理模块、磁盘存储管理模块主要功能。了解网络配置管理主要功能。了解Docker容器自动化管理模块主要功能。【技能目标】掌握软件包管理模块的使用方法。掌握文件管理模块的使用方法。掌握用户和身份验证管理模块的使用方法。掌握系统和服务管理模块的使用方法。掌握磁盘存储管理模块的使用方法。【素质目标】培养读者的独立思考能力和逻辑思维能力,使其能够运用逻辑思维解决复杂问题。培养读者的信息素养和学习能力,使其能够灵活运用正确的学习方法和技巧,快速掌握新知识和技能,并不断学习和进步。Ansible自动化管理任务1:常用的自动化管理模块目录/Contents01020304软件包管理模块用户和身份验证管理模块条件控制结构循环控制结构05部署Jinja2模板01软件包管理模块pip模块软件包管理模块可以通过自动化的方式在远程主机上安装、升级、卸载软件包,以及管理软件包的依赖关系。它们支持各种操作系统和软件包管理系统,主要模块包括apt、yum、dnf、pip、npm、yarn等,这些模块可以与各种软件包管理工具集成,以提供管理各种软件包的功能,从而加快软件包部署和配置的速度并提高效率。pip模块是用于管理Python包的模块。它可以用来安装、卸载、更新Python包,以及安装指定版本的Python包。其主要参数或选项如表所示。序号主要参数或选项示例1name:指定Python包名称。version:指定Python包版本号。state:指定Python包的状态,可选项有present、absent、latest等。virtualenv:指定安装Python包的虚拟环境路径。requirements:指定安装的Python包清单文件的路径。extra_args:指定要传递给pip命令的额外参数。executable:指定用于安装Python包的Python可执行文件路径-name:Installbottlepythonpackageansible.builtin.pip:name:bottle-name:Installbottlepythonpackageonversion0.11ansible.builtin.pip:name:bottle==0.11-name:Installbottlepythonpackagewithversionspecifiersansible.builtin.pip:name:bottle>0.10,<0.20,!=0.11yum模块yum模块是用于管理Fedora、RHEL、CentOS、华为openEuler等Linux操作系统上的软件包的模块。它可以用于安装、升级、删除和查询软件包。其主要参数或选项如表所示。表12-1pip模块主要参数或选项序号主要参数或选项示例1name:指定软件包名称。state:指定软件包的状态,可选项有present、absent、latest等。enablerepo:指定要启用的yum源的名称。disablerepo:指定要禁用的yum源的名称。installroot:指定安装软件包时使用的根目录。update_cache:是否更新yum缓存。-name:InstallthelatestversionofApacheansible.builtin.yum:name:httpdstate:latest-name:Upgradeallpackagesansible.builtin.yum:name:'*'2disable_gpg_check:是否禁用GPG检查。download_only:设置yum是否仅下载软件包。download_dir:指定软件包下载后的本地保存路径-name:InstallthelatestversionofApacheansible.builtin.yum:name:httpdstate:latest-name:Upgradeallpackagesansible.builtin.yum:name:'*'state:latestyum_repository模块yum_repository模块是用于在CentOS、RHEL等基于yum包管理器的Linux系统上创建、编辑和删除yum存储库的模块。其主要参数或选项如表所示。序号主要参数或选项示例1name:指定yum仓库的名称。description:指定yum仓库的描述信息。baseurl:指定yum仓库的URL。baseurl用于指定单个URL,而mirrorlist用于指定一个URL列表,以便自动选择下载速度最快的镜像。enabled:指定是否启用该yum仓库。gpgcheck:指定是否对从该yum仓库下载的软件包进行GPG密钥验证。gpgkey:指定GPG密钥的URL或本地路径。state:定义yum仓库的状态。可选项有present(安装软件包)、absent(删除软件包)、latest(更新软件包到最新版本)。file:指定在/etc/yum.repos.d/目录下创建的文件的名称,并自动为该名称添加.repo扩展名,如果不设置file参数的值,则文件名称默认为name参数的值-hosts:tasks:-name:Addrepositoryyum_repository:name:openclouddescription:openlcoudYUMrepo

baseurl:/pub/epel/7/$basearch

gpgcheck:yesgpgkey:/pub/epel/RPM-GPG-KEY-EPEL-7enabled:yesstate:presentapt模块apt模块是用于管理在Debian和Ubuntu系统上安装、升级和卸载软件包的模块。它可以用于安装、升级、删除和查询软件包。其主要参数或选项如表所示。序号主要参数或选项示例1name:指定软件包的名称。state:指定软件包的状态,可选项有present、absent、latest。update_cache:指定是否更新apt的元数据缓存,以确保能够找到最新的软件包列表。upgrade:指定是否对软件包执行升级操作,可选项有dist、full、no、safe、yes。deb:指定要安装的.deb文件的路径,可以是本地路径或远程URL-name:Installapachehttpd(state=presentisoptional)ansible.builtin.apt:name:apache2state:present-name:Updaterepositoriescacheandinstall"foo"packageansible.builtin.apt:name:fooupdate_cache:yes-name:Installa.debpackagefromtheinternetansible.builtin.apt:deb:/python-ppq_0.1-1_all.debapt_repository模块apt_repository模块是用于管理Ubuntu和Debian系统上的apt存储库的模块。其主要参数或选项如表所示。序号主要参数或选项示例1repo:指定apt存储库的名称和URL,比如ppa:ansible/ansible。state:指定APT软件包仓库的状态,可选项有present、absent。filename:指定APT软件包仓库的配置文件名-name:Addspecifiedrepositoryintosourceslistusingspecifiedfilenameansible.builtin.apt_repository:repo:deb/linux/chrome/deb/stablemainstate:presentfilename:google-chrome-name:Removespecifiedrepositoryfromsourceslistansible.builtin.apt_repository:repo:deb/ubuntuhardypartnerstate:absent-name:AddnginxstablerepositoryfromPPAandinstallitssigningkeyonUbuntutargetansible.builtin.apt_repository:repo:ppa:nginx/stable02用户和身份验证管理模块authorized_key模块authorized_key模块是用于在目标主机上管理SSH授权密钥的模块。它可以添加、删除和管理用户的SSH授权密钥,以实现更安全的远程访问。其主要参数或选项如表所示。序号主要参数或选项示例1user:指定需要添加或移除SSH公钥的用户,默认为当前连接用户。state:指定SSH公钥的状态,可选值为present(添加SSH公钥)、absent(删除SSH公钥)。key:指定要添加或删除的SSH公钥,可以是一个公钥文件的路径,也可以是公钥字符串。exclusive:是否从authorized_keys文件中删除所有其他未指定的密钥。manage_dir:指示模块是否应该管理授权密钥文件的目录。如果设置为true,则模块将创建目录,并设置现有目录的所有者和权限。path:设置authorized_keys文件的备用路径,当不设置时,该值默认为~/.ssh/authorized_keys-name:Setauthorizedkeytakenfromfileansible.posix.authorized_key:user:alexstate:presentkey:"{{lookup('file','/home/alex/.ssh/id_rsa.pub')}}"-name:Setauthorizedkeyinalternatelocationansible.posix.authorized_key:user:alexstate:presentkey:"{{lookup('file','/home/alex/.ssh/id_rsa.pub')}}"path:/etc/ssh/authorized_keys/alexmanage_dir:falseuser模块user模块是用于在目标主机上管理用户的模块。它可以创建、修改和删除用户,设置用户的密码和SSH授权密钥,以及管理用户的家目录和Shell等。其主要参数或选项如表所示。序号主要参数或选项示例1name:指定用户的名称。uid:指定用户的UID。state:指定用户的状态,比如present、absent。home:指定用户的家目录。password:指定用户的密码。group:指定用户所属的组。groups:指定用户所属的附加组。shell:用户默认的Shell。append:是否追加附加组.expires:设定用户过期时间,-1表示该用户永不过期,整数值则表示从1970年1月1日至今的秒数。比如,expires:1422403387表示该用户的过期时间为2015年1月28日15:36:27。password_expire_max:设定密码必须更改的最长时间,以天为单位。password_expire_min:设定密码必须更改的最短时间,以天为单位。如果设置为0,则表示没有最短时间限制。ssh_key_file:用于指定用户的SSH公钥文件路径。umask:设置用户的掩码。generate_ssh_key:是否为用户生成SSH密钥对。ssh_key_bits:生成的SSH密钥对的位数。ssh_key_file:生成的SSH密钥对的文件路径-name:Addtheuser'alex'withaspecificuidandaprimarygroupof'admin'ansible.builtin.user:name:alexcomment:AlexDoeuid:1040group:admin-name:Addtheuser'james'withabashshell,appendingthegroup'admins'and'developers'totheuser'sgroupsansible.builtin.user:name:jamesshell:/bin/bashgroups:admins,developersappend:yes-name:Createa2048-bitSSHkeyforuserjsmithin~jsmith/.ssh/id_rsaansible.builtin.user:name:jsmithgenerate_ssh_key:yesssh_key_bits:2048ssh_key_file:.ssh/id_rsagroup模块group模块是用于在目标主机上管理用户组的模块。它可以创建、修改和删除用户组,以及添加和删除用户组成员。其主要参数或选项如表所示。序号主要参数或选项示例1name:指定组名。state:指定组状态,比如present、absent。gid:指定组的GID-name:Ensuregroup"docker"existswithcorrectgidansible.builtin.group:name:dockerstate:presentgid:175003系统和服务管理模块service模块service模块是用于在目标主机上管理系统服务的模块,支持的初始化系统包括BSDinit、OpenRC、SysV、SolarisSMF、systemd、upstart等,该模块可充当底层服务管理器模块的代理。service模块可以启动、停止、重新启动和重载系统服务,以及检查服务的状态。其主要参数或选项如表所示。序号主要参数或选项示例1name:指定服务的名称。state:指定服务的状态,可选项有started、stopped、restarted、reloaded。enabled:指定服务是否开机自启动-name:Restartservicehttpd,inallcasesansible.builtin.service:name:httpdstate:restarted-name:Reloadservicehttpd,inallcasesansible.builtin.service:name:httpdstate:reloadedsystemd模块systemd模块是用于在目标主机上管理systemd服务的模块。它可以启动、停止、重新启动和重载systemd服务,以及检查服务的状态。其主要参数或选项如表所示。序号主要参数或选项示例1name:指定服务的名称。state:指定服务的状态,可选项有started、stopped、restarted、reloaded。enabled:指定服务是否开机自启动。masked:指定服务是否应该被屏蔽。daemon_reload:是否重新加载守护进程配置文件。scope:管理systemd作用域单元的名称,可选项有system、user、global等-name:Makesureaserviceunitisrunningansible.builtin.systemd:state:startedname:httpd-name:Stopservicecronondebian,ifrunningansible.builtin.systemd:name:cronstate:stopped-name:Restartservicecrononcentos,inallcases,alsoissuedaemon-reloadtopickupconfigchangesansible.builtin.systemd:state:restarteddaemon_reload:truename:crond-name:Reloadservicehttpd,inallcasesansible.builtin.systemd:name:httpd.servicestate:reloadedfirewalld模块firewalld模块是用于在目标主机上管理防火墙的模块。它可以添加、删除、启用、禁用和重新加载防火墙规则。其主要参数或选项如表所示。序号主要参数或选项示例1service:指定需要添加或移除的服务名称。state:指定服务状态,可选项为enabled、disabled。immediate:是否立即生效。permanent:是否永久生效。zone:指定防火墙规则所属的区域。source:指定防火墙规则的源地址。port:指定要添加或移除防火墙的端口名称或端口范围,端口范围格式为PORT/PROTOCOL或PORT-PORT/PROTOCOL。port_forward:指定防火墙转发的端口和协议。protocol:指定防火墙规则的协议。rich_rule:添加复杂的防火墙规则-name:permittrafficindefaultzoneforhttpsserviceansible.posix.firewalld:service:httpspermanent:truestate:enabledimmediate:true-name:donotpermittrafficindefaultzoneonport8081/tcpansible.posix.firewalld:port:8081/tcppermanent:truestate:disabled-name:Addrichruletoallowmultipleportsansible.posix.firewalld:immediate:truepermanent:truestate:enabledrich_rule:'rulefamily="ipv4"sourceaddress=

"/24"portport="{{item}}"protocol="tcp"accept'loop:"{{list_ports}}"vars:list_ports:-8081-8082cron模块cron模块是用于在目标主机上管理计划任务作业的模块。它可以创建、删除和修改cron任务,并且可以通过指定用户和作业名称来控制不同用户的定时任务。其主要参数或选项如表所示。序号主要参数或选项示例1name:指定定时任务的名称。state:指定定时任务的状态,比如present、absent。job:指定定时任务的执行命令或脚本。minute:分钟字段(0~59)。hour:小时字段(0~23)。day:日期字段(1~31)。month:月份字段(1~12)。weekday:星期字段(0~6,0表示星期日)。user:执行任务的用户-name:Addcronjobtocleanuplogscron:name:"Cleanuplogs"minute:0hour:3job:"find/var/log/-name'*.log'-typef-delete"-name:Addcronjobforlogercron:name:"loger"minute:"*"job:"/usr/bin/logger'Thisisatestlogmessage'" user:"{{user}}"04磁盘存储管理模块parted模块Ansible使用多个模块来管理本地存储设备和文件系统,例如parted、lvg、lvol、filesystem、mount等,这些模块提供了丰富的功能和参数或选项,可以用于创建、删除、调整分区,创建和删除逻辑卷和卷组,格式化文件系统,挂载和卸载文件系统等操作,实现对本地存储设备和文件系统的全面管理。这些模块用于管理底层存储和分区,需谨慎使用,建议在测试环境中先进行充分的测试,以确保不会导致数据丢失或其他不良后果。parted模块是用于管理本地存储设备分区的模块。它可以创建、修改、删除本地存储设备上的分区表和分区信息。其主要参数或选项如表所示。序号主要参数或选项示例1device:指定管理的磁盘设备名称。number:指定要操作的分区编号。label:指定分区表类型,可选值为msdos、gpt、bsd、aix等。part_start:指定分区开始位置,默认值为0%。part_end:指定分区结束位置,默认值为100%。unit:指定分区的单位。state:指定分区的状态,可选值为present、absent、info。如果设置为info,该模块只返回设备信息name:Createanewpartitiontableonadeviceparted:device:/dev/sdblabel:gptstate:present-name:Createanewpartitiononadeviceparted:device:/dev/sdbnumber:1flags:[lvm]state:presentpart_end:100%filesystem模块filesystem模块可以用于管理Linux操作系统上的文件系统。它可以创建、格式化和删除文件系统。其主要参数或选项如表所示。序号主要参数或选项示例1fstype:指定文件系统类型,可选项有ext4、xfs、lvm、btrfs等。dev:指定文件系统对应的设备。force:是否强制格式化。opts:指定文件系统的挂载选项。state:指定文件系统的状态,可选项有present、absent-name:Createanewfilesystemfilesystem:fstype:ext4dev:/dev/sdb1-name:Formatadevicewithafilesystemfilesystem:fstype:ext4dev:/dev/sdb1force:truemount模块mount模块的主要功能是管理文件系统的挂载和卸载。其主要参数或选项如表所示。序号主要参数或选项示例1src:指定文件系统的来源。path:指定挂载点路径。fstype:指定要挂载的文件系统类型。opts:指定挂载的选项。state:指定挂载状态,可选项有mounted、unmounted、remounted-name:Mountafilesystemmount:path:/mnt/datasrc:/dev/sdb1fstype:ext4opts:defaultsstate:mounted-name:Unmountafilesystemmount:path:/mnt/datastate:unmountedlvg模块lvg模块用于在目标主机上管理卷组。它可以创建、删除、调整卷组属性。其主要参数或选项如表所示。序号主要参数或选项示例1vg:指定卷组名称。pvs:指定添加到卷组的物理卷。state:指定卷组的状态,可选项有present、absent-name:Createavolumegroupontopof/dev/sda1withphysicalextentsize=32MBcommunity.general.lvg:vg:vg.servicespvs:/dev/sda1pesize:32-name:Removealogicalvolumegrouplvg:vg:vg01state:absentlvol模块lvol模块用于在目标主机上管理逻辑卷。它可以创建、删除和调整逻辑卷的属性。其主要参数或选项如表所示。序号主要参数或选项示例1lv:指定逻辑卷名称。vg:指定逻辑卷所属卷组名称。size:指定逻辑卷大小。state:指定逻辑卷的状态,可选项有present、absent。resizefs:是否调整底层文件系统和逻辑卷的大小。thinpool:指定精简池卷的名称-name:Createanewlogicalvolumelvol:lv:lvol0vg:vg01size:1g-name:Removealogicalvolumelvol:lv:lvol0vg:vg01state:absent-name:Createalogicalvolumethesizeofallremainingspaceinthevolumegroupcommunity.general.lvol:vg:fireflylv:testsize:100%FREE05文件管理模块file模块Ansible文件管理模块提供管理Linux文件系统的能力,包括创建、删除、复制、移动、重命名文件,以及修改文件权限和所有者等。这些模块通常用于自动化部署和配置过程中,以确保文件系统在不同的目标主机之间保持一致。file模块是用于在目标主机上管理文件和目录的模块。它可以进行创建、删除、修改文件或者目录的属性、权限等操作。其主要参数或选项如表所示。序号主要参数或选项示例1path:指定要操作的文件或目录的路径。state:指定文件或目录的状态,可选值有absent、directory、touch、link、hard、file等。mode:指定文件或目录的权限模式,可以是数字或字符串形式,例如0644或u+rwx、g+rx。owner:指定文件或目录的所有者。group:指定文件或目录的所属组。src:指定源文件的路径,在创建符号链接或复制文件时使用。dest:指定目标文件的路径,在创建符号链接或复制文件时使用。recurse:递归地在目录内容上设置指定的文件属性,仅在state设置为directory时适用。setype:设置文件或目录的SELinux安全上下文类型force:指定是否强制执行操作-name:Touchthesamefile,butadd/removesomepermissionsansible.builtin.file:path:/etc/foo.confstate:touchmode:u+rw,g-wx,o-rwx-name:Createadirectoryifitdoesnotexistansible.builtin.file:path:/etc/some_directorystate:directorymode:'0755'-name:Recursivelychangeownershipofadirectoryansible.builtin.file:path:/etc/foostate:directoryrecurse:yesowner:foogroup:foocopy模块copy模块用于在目标主机上复制文件。它可以从控制主机向目标主机复制文件。其主要参数或选项如表所示。序号主要参数或选项示例1src:指定要复制到目标主机的文件的本地路径。dest:指定将文件复制到的目标主机上的绝对路径。content:在控制节点上生成文件内容,不能与src参数同时使用。backup:指定是否备份源文件。owner:设置文件的所有者。group:设置文件的所属组。mode:设置文件的权限。force:如果目标文件已存在,则强制覆盖-name:Copyfilewithownerandpermissionsansible.builtin.copy:src:/srv/myfiles/foo.confdest:/etc/foo.confowner:foogroup:foomode:'0644'lineinfile模块lineinfile模块用于在文件中添加、修改或删除指定行内容。其主要参数或选项如表所示。序号主要参数或选项示例1path:指定要修改的文件的路径。line:指定要插入或替换到文件中的行内容。state:指定要执行的操作,可选值为present、absent。regexp:用于匹配需要修改或删除的行的正则表达式。insertafter:指定在哪行之后插入新行。

insertbefore:指定在哪行之前插入新行。

create:指定是否创建文件,与state=present连用。search_string:指定需要匹配的字符串,用于查找需要修改的行-name:EnsureSELinuxissettoenforcingmodeansible.builtin.lineinfile:path:/etc/selinux/configregexp:'^SELINUX=‘line:SELINUX=enforcing-name:Replacealocalhostentrywithourownansible.builtin.lineinfile:path:/etc/hostsregexp:'^127\.0\.0\.1'line:localhost-name:Replacealocalhostentrysearchingforaliteralstringtoavoidescapingansible.builtin.lineinfile:path:/etc/hostssearch_string:''line:localhostblockinfile模块blockinfile模块用于在文件中添加、修改或删除块内容。其主要参数或选项如表所示。序号主要参数或选项示例1path:指定要操作的文件的路径。

温馨提示

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

评论

0/150

提交评论