模块使用说明

ansible-3模块使用说明

推荐资料

Ansible系列命令

ansible通过ssh实现配置管理、应用部署、任务执行等功能,建议配置ansible端能基于 密钥认证的方式联系各被管理节点

ansible的Host-pattern

匹配主机的列表

ansible命令执行过程

ansible命令执行过程

  1. 加载自己的配置文件 默认/etc/ansible/ansible.cfg
  1. 加载自己对应的模块文件,如command
  1. 通过ansible将模块或命令生成对应的临时py文件,并将该文件传输至远程服务器的对应执行用户$HOME/.ansible/tmp/ansible-tmp-数字/XXX.PY文件
  1. 给文件+x执行
  1. 执行并返回结果
  1. 删除临时py文件,退出
    1. 执行状态:

  • 绿色:执行成功并且不需要做改变的操作
  • 黄色:执行成功并且对目标主机做变更
  • 红色:执行失败

常用模块

Command:在远程主机执行命令,默认模块,可忽略-m选项

  • 此命令不支持 $VARNAME < > | ; & 等,用shell模块实现 \==command有局限性,比如重定向使用不了,不支持以下场景==
    • Shell:和command相似,用shell执行命令

      ansible all -m command -a 'echo passwd|passwd --stdin user' #可以使用shell模块,使用起来更方便 调用bash执行命令 类似 cat /tmp/stanley.md | awk -F ‘|’ ‘{print $1,$2}’ &> /tmp/example.txt \==这些复杂命令,即使使用shell也可能会失败== 解决办法:写到脚本时,copy到远程,执行,再把需要的结果拉回执行命令的机器
默认是command模块,可以将shell模块设置为默认值

Script:在远程主机上运行ansible服务器上的脚本

1、可以执行远程主机的脚本 2、也可以执行本地脚本应用到远程主机上

Copy:从主控端复制文件到远程主机

Fetch:从远程主机提取文件至主控端,copy相反,目前不支持目录

File:设置文件属性

unarchive:解包解压缩,有两种用法:

1、将ansible主机上的压缩包在本地解压缩后传到远程主机上,设置copy=yes 2、将远程主机上的某个压缩包解压缩到指定路径下,设置copy=no 常见参数:

Archive:打包压缩

Hostname:管理主机名

更改主机名,一般使用变量进行替换

Cron:计划任务

Yum:管理包

Service:管理服务

User:管理用户

Group:管理组

ansible系列命令

ansible-galaxy

ansible-pull

推送命令至远程,效率无限提升,对运维要求较高

ansible-playbook

执行playbook

ansible-vault

功能:管理加密解密yml文件

Ansible-console:2.0+新增,可交互执行命令,支持tab


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 438803792@qq.com
Loading...