Ansible-基础模块

  • file模块;

    • file 模块用于对文件相关的操作(创建、删除、软硬链接)
    • 参数;

      • path:要操作的文件路径
      • state:状态选项,用于指定希望文件处于的状态

        • touch:创建文件
        • directory:创建文件夹
        • link:创建软连接文件
        • hard:创建硬链接文件
      • mode:指定文件权限
      • owner:指定文件所有者
      • group:指定文件所属用户组
    • 列:
      • 向所有客户机的/tmp目录下创建demo01.txt文件
        • ansible all -m file -a "path=/tmp/demon01.txt state=touch mode=777 owner=ftp group=daemon"
  • copy模块:

    • ansible的copy模块是用于将文件从管理机复制到客户机。
    • 也可以用来创建目录、设置文件权限或者修改文件的属主和属组
      • 参数:

        • src:指定管理机的文件路径 必须
        • dest:指定客户机的文件路径
        • backup:覆盖文件之前,先将源文件进行备份
        • remote_src:指定true是,表示src参数引用的文件位于目标主机上
        • content:指定在目标主机上创建文件所包含的内容,可以是文本内容,可以是二进制数据的base64编码
        • force:覆盖写入yes,不覆盖no
        • owner:所属用户
        • group:所属组
        • mode:指定文件的权限模式
  • fetch模块:

    • 用于从客户机上复制文件到管理机,但不能复制目录到管理机,比如可以对日志集中化管理

      • 列:ansible all -m fetch -a "src=/data/test02.txt dest=/root/ flat=no"
      • src:客户端源文件
      • dest:管理端目录
      • flat:yes或no,默认为no,如果为no的话 复制过来的文件将会带有在客户机的绝对路径,也就是说,会生成一个以客户机IP命名的文件夹
  • get_url模块:

    • 用户从远程地址下载文件到客户机

      • url:网址路径
      • dest:客户机目录路径
      • force : 如果yes,dest不是目录,将每次下载文件,如果内容改变,替换文件。如果否,则只有在目标不存在时才会下载该文件。
  • unarchive模块:

    • 用于解压缩文件到管理机或客户机

      • 参数:

        • remote_src:如果为yes,则表示要解压缩的文件位于客户机上,如果设置为no,则表示位于管理机上
        • src:指定要解压缩的文件路径
        • dest:指定解压缩后的文件路径(客户机)
        • create:指定一个文件,如果该文件已经存在,就不会再次解压文件。这可以用来判断压缩文件是否已经解压过。
        • extra_opts:允许附加任何额外的选项到压缩和解压缩命令中
        • copy:如果设置为 yes,将在客户机上创建一个彻底的新的文件;如果设置为 no,只有目标文件夹的内容将会改变
      • 列:
        • ansible all -m unarchive -a "src=/root/nginx-1.4.7.tar.gz dest=/root remote_src=yes"
  • yum模块:

    • 用于在客户机上执行于yum软件包管理器相关的操作的模块。
    • 用于安装、升级、删除和管理系统上的软件包

      • name:服务名称\软件包名
      • state:要执行什么操作,latest:安装,absent:卸载
    • 列:
      • ansible all -m yum -a "name=httpd state=latest"
  • setup模块:

    • ansible的setup模块用于收集有关远程主机的信息,包括硬件,操作系统,网络以及其他系统属性
    • ansible all -m setup -a "filter=discovered_interpreter_python gather_subset=network"
  • command模块

    • ansible 的command模块可以用来在远程主机上执行特定的命令。
    • 这个模块可以用于临时任务,但通常建议使用更适合复杂任务和自动化模块和Playbook

      • 1.用于在远程主机上执行单个命令
      • 2.不会调用系统的shell,因此无法使用通配符、重定向、管道等shell功能
      • 3.返回的结果是命令的标准输出
      • 4.适用于执行简单的命令
        • ansible all -a command "ifconfig"
  • shell模块:

    • 允许在远程主机上执行特定的命令,提供了更多的灵活性和功能,相比command模块。
    • 适用于执行复杂的命令和脚本
    • ansible all -m shell -a "ifconfig | grep -A 1 ens33"
  • scripts模块:

    • 用于在远程主机上执行本地脚本文件。这个脚本可以是bash、python或任何其他可执行脚本。当需要在远程主机上运行特定的脚本时,可以使用script模块。
    • 特点:

      • 用于在远程主机上执行本地脚本文件。
      • 会将本地的脚本文件传输到远程主机上执行,并将执行结果返回给控制节点。
      • 如果需要在远程主机上执行特定的本地脚本时,可以使用script模块。
      • 便于在远程主机上执行本地脚本文件,省去了手动传输脚本文件的步骤。
    • ansible all -m script -a "./test.sh"
  • group模块:

    • ansible中的group模块用于管理组的配置,组指的是在/etc/group文件中定义的用户组
    • 参数:

      • name:要操作的组名称
      • state:表示组的状态:

        • present:创建
        • absent:删除
      • system:指定是否是系统组
    • ansible all -m group -a "name=mygroup state=present"
  • user模块

    • 用于管理用户账户的配置,通过user模块,可以创建、删除、管理用户账户的属性。
    • 参数:

      • name:用户名称
      • state:present(创建)

        • absent(删除)
        • lock(锁定)
        • unlock(解锁)
      • uid:用户ID
      • group:所属组
      • password:密码
      • home:家目录
      • shell:默认shell
    • ansible all -m user -a "name=myuser group=mygroup state=present"
  • cron模块:

    • ansible的cron模块是用来管理和配置cron作业的模块,让客户机在预定的时间执行特定的命令或脚本
    • ansible all -m cron -a "name=mytest minute=*/5 job='/root/test.sh' state=present"
      • 参数:

        • minute:设置计划任务中分钟设定位的值,默认为""。
        • job:指定计划的任务中需要实际执行的命令或者脚本。
        • state:当计划任务有名称时,修改或删除对应的任务,当删除计划任务时,需要将 state 的值设置为 absent。
相关推荐
小灰灰__24 分钟前
Linux离线安装Docker命令,简单镜像操作
linux·docker·eureka
AI视觉网奇1 小时前
pytorch3d linux安装
linux·人工智能·pytorch
双手插兜-装高手1 小时前
Linux - 线程基础
linux·c语言·笔记
IT枫斗者1 小时前
如何解决Java EasyExcel 导出报内存溢出
java·服务器·开发语言·网络·分布式·物联网
XY.散人1 小时前
初识Linux · 信号处理
linux·信号处理
air_7291 小时前
实验四:构建园区网(OSPF 动态路由)
服务器·网络·智能路由器
XiaoCCCcCCccCcccC2 小时前
Linux环境下的基础开发工具 -- 包管理器,vim,gcc/g++,make/makefile,git,gdb/cgdb
linux·c语言·gdb
小袁搬码2 小时前
Ubuntu24.04LTS设置root用户可远程登录
linux·ubuntu24.04
很楠不爱2 小时前
Linux网络——传输层协议
linux·网络·udp
IDC02_FEIYA2 小时前
Discuz论坛网站管理员的默认用户名admin怎么修改啊?
服务器·web