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。
相关推荐
唐装鼠13 分钟前
linux vscode解压版 AI账号无法登陆问题(浏览器无法打开vscode)
linux·运维·vscode
玉树临风江流儿14 分钟前
炸鸡派-echoAI机器人项目解析
linux
cly120 分钟前
Ansible自动化(十一):Jinja2模板
网络·自动化·ansible
一个平凡而乐于分享的小比特25 分钟前
Linux最小系统详解
linux·最小系统
db_murphy26 分钟前
学习篇 | 服务器的睿频
运维·服务器·学习
Levin__NLP_CV_AIGC26 分钟前
Ubuntu部署Dufs
linux·运维·服务器·ubuntu·ssh
cly137 分钟前
Ansible自动化(八):条件语句
运维·自动化·ansible
China_Yanhy38 分钟前
Ansible 工业级项目标准化架构指南 (V1.0)
架构·ansible
小宇的天下40 分钟前
Calibre 3Dstack --每日一个命令days8【connected】(3-8)
运维·服务器·性能优化
ICT系统集成阿祥42 分钟前
服务器网卡绑定(bond)7种模式详解
运维·服务器·bond·网卡绑定·服务器链路聚合