• 青蛙学Linux—Ansible的ad-hoc模式和常用模块(二)


    9、copy模块

    copy模块用于将指定文件复制到被管理主机。

    模块常用选项(其他选项同file模块):

    • src:定义复制到被管理主机的本地文件的路径,可以使用绝对路径或相对路径。注意,当路径为一个目录时,结尾加/则只复制目录下的文件及子目录;结尾不加/时,连同该目录一同复制
    • dest:定义文件在被管理主机上的路径,如果源文件为目录,则该路径也必须为目录
    • backup:在覆盖之前将文件进行备份,备份文件包含时间信息。值为yes|no
    • content:当使用该选项代替src时,可直接将文件的内容设置为指定的值
    • checksum:对文件进行SHA1校验
    • directory_mode:递归设定目录的权限
    • force:值为yes时,当被管理主机存在复制的文件时且文件内容不同时强制覆盖;值为no时,只有当被管理主机的目标位置不存在复制的文件时才执行复制
    • validate:在复制之前运行一个命令对文件进行校验,要验证的文件通过%s传递。在这里无法使用管道符。比如,复制一个sudoers文件前对其进行校验可以使用validate=‘visudo –cf %s’

    一个例子:将主控端当前目录下的Python-3.7.1.tgz复制到centos7组的主机/root目录下,属主和属组设置为nobody,权限为666

    在主控端输入以下命令:

    [root@localhost ~]# ansible centos7 -m copy -a 'src=Python-3.7.1.tgz dest=/root owner=nobody group=nobody mode=666' -k

    命令运行后返回结果:

    5

    10、service模块

    service模块用于管理被管理主机上的服务。

    模块常用选项:

    • enabled:是否开机启动,值为yes|no
    • name:服务的名称
    • pattern:定义一个模式,如果通过status指令查看服务的状态没有响应时,就会通过ps指令在进程中根据该模式进行查找,如果匹配到,则认为该服务依然在运行
    • sleep:如果执行了restarted,则在stop和start之间沉睡设置的时间
    • state:对当前服务执行的动作,可能的值有,started - 启动;stopped - 停止;restarted - 重启动;reloaded – 重新加载

    11、cron模块

    cron模块用于管理被管理主机上的任务计划。

    模块常用选项:

    • backup:在修改被管理主机上的任务计划前先做备份,值为yes|no
    • cron_file:为设定的任务计划指定一个文件名而不是使用以用户名命名的cron文件。文件保存在/etc/cron.d目录下,使用该选项必须指定user
    • day:设定任务执行的日期(1-31,*,*/2,…)
    • hour:设定任务执行的小时(0-23,…)
    • minute:设定任务执行的分钟(0-59,…)
    • weekday:设定任务执行的周(0-7,…)
    • job:要执行的任务
    • name:任务的描述信息
    • special_time:特殊的时间范围,可能的值有,reboot - 重启时;annually - 每年;monthly - 每月;weekly - 每周;daily - 每天;hourly - 每小时
    • state:创建或者删除任务计划,可能的值有,present - 创建任务;absent - 删除任务。默认值为present
    • user:指定任务计划的用户

    12、yum模块

    yum模块用于使用YUM管理被管理主机上的软件包。

    模块常用选项:

    • allow_downgrade:如果指定的软件包已经安装,是否允许对该软件包进行降级,值为yes|no
    • autoremove:在删除软件包时连同软件包的依赖包一起删除。该选项仅支持在yum>=3.4.3(RHEL/CentOS 7.x+版本)环境下执行
    • bugfix:当state=latest时,仅安装标记为bug修复的相关更新
    • config_file:指定YUM的配置文件
    • disable_gpg_check:关闭gpg检查
    • disablerepo:不启用指定的源
    • enablerepo:启动指定的源
    • download_only:仅下载指定软件包而不安装
    • name:软件包名,也可以传递一个url或者一个本地的rpm包路径
    • state:对软件包进行的动作,可能的值为,安装 – present|installed;升级 – latest;卸载 – absent|removed
    • update_cache:强制检查yum缓存是否过期,只有当state=present|latest时有效

    13、user模块

    user模块用于对被管理主机上的用户进行操作。

    模块常用选项:

    • append:设置为yes时,用户加入到指定的组;设置为no时,将用户加入到指定的组并从其他组中删除。默认为no
    • group:指定用户的主组
    • groups:指定用户的附加组,如果设置为空字符串、null或~则表示将用户从所有附加组中删除
    • name:指定用户名
    • remove:当state=absent时使用,在删除用户的同时删除用户的主目录。值为yes|no
    • shell:指定用户的shell
    • state:设置用户的状态,present表示创建,absent表示删除。默认为present
    • passwd:设置用户的密码,值不能为明文
    • system:在state=present时使用,值为yes时将用户设置为系统用户,不能用于修改现有用户。默认值为no
    • uid:设置用户的UID

    14、group模块

    group模块用于对被管理主机上的用户组进行操作。

    模块常用选项为:

    • gid:设置组的GID
    • name:设置组名
    • state:设置组的状态,present表示创建组,absent表示删除组。默认值为present
    • system:如果设置为yes,表示将组设置为系统组。默认值为no

    15、synchronize模块

    synchronize模块用于调用rsync进行文件备份。

    模块常用选项:

    • archive:归档,相当于同时开启recursive(递归)、links、perms、times、owner、group和-D。值为yes|no,默认值为yes
    • checksum:跳过检测sum值。值为yes|no,默认值为no
    • compress:开启压缩。值为yes|no,默认值为yes
    • copy_link:复制符号链接文件。值为yes|no,默认值为no
    • delete:在recursive=yes时使用,删除目标路径中不存在于源路径的文件
    • dest:目标路径
    • src:源路径
    • dest_port:指定rsync使用的端口
    • mode:指定rsync使用的是push模式还是pull模式。默认为push模式
    • private_key:指定rsync连接时的SSH私钥

    16、setup模块

    setup模块用于获取主机的信息。常用选项为filter,用于从返回的结果中过滤出我们需要的信息。

    17、get_url模块

    get_url模块用于从服务器上下载文件(类似wget)。

    模块常用选项:

    • sha256sum:下载完成后进行SHA256校验
    • timeout:下载超时时间,默认为10秒
    • url:下载的url
    • url_password:设置登录下载服务器的密码
    • url_username:设置登录下载服务器的用户名
    • use_proxy:使用代理,代理需要事先在环境变量中定义

    18、ad-hoc使用主机清单中的自定义主机变量

    主机清单中可以使用Ansible定义的变量,也可以自定义变量。在主机清单中设置了自定义变量后,就可以在ad-hoc中进行引用,引用的方法为在命令中使用{{自定义变量}}。

    我们在实验环境的主机清单中的centos7组下的主机添加自定义变量http_port,如下:

    [centos7]
    192.168.0.88 ssh_port=80

    然后输入如下命令:

    [root@localhost ~]# ansible centos7 -m command -a 'lsof -i tcp:{{ssh_port}}' -k

    返回结果:

    6

  • 相关阅读:
    ASP.NET CORE在docker中的健康检查(healthcheck)
    docker save与docker export实现docker镜像与容器的备份
    .NET 6应用程序适配国产银河麒麟V10系统随记
    Rocky Linux8升级9随记
    ⭐前端开发库⭐
    (三)vue3新特性 ref reactive
    (八)异步组件加载使用
    (六)这一节单讲,vue3的升级的变化
    (五)vue3模块化 鼠标追踪器——模块拆分案例
    (九)Provide和Inject的使用
  • 原文地址:https://www.cnblogs.com/yu2006070-01/p/10168800.html
Copyright © 2020-2023  润新知