ansible的ad-hoc

ad-hoc

在这里插入图片描述

ad-hoc选项说明

# ad-hoc格式:
ansible <主机组> -m <模块名> -a <参数>

在这里插入图片描述
在这里插入图片描述


ansible查看所有模块

# 查看所有ansible所有模块
ansible-doc -l

在这里插入图片描述

# 统计ansible模块的数量
ansible-doc -l|wc -l

在这里插入图片描述


过滤模块

# 过滤yum模块
ansible-doc -l|grep yum

在这里插入图片描述


查看模块用法

# ansible-doc 模块名
## | less 防止页面输出过大,方便翻页查看
ansible-doc yum | less

在这里插入图片描述


以=开头的选项—强制选项

在这里插入图片描述
模块文档中,大多数的选型是以-开头的,但也有=开头的选项,属于强制选项.


ansible常用模块

ansible的模块非常多,常用的模块大约有几十个,掌握这些常用模块,就足以应对日常工作.


文件管理模块

  • file 模块:创建删除文件,目录,链接,修改文件,目录的权限等
  • copy 模块: 将控制端主机的文件拷贝到远程主机
  • lineinfile 模块:修改文件内容(按行修改)
  • fetch 模块:将远程其他主机到文件拷贝到本地
  • replace 模块: 修改文件内容(按关键字修改)
  • syncchronize

软件管理模块

  • package
  • yum_repository 模块: 创建、修改、删除yum源配置文件
  • yum 模块:安装,卸载,升级软件
  • apt 模块:安装,卸载,升级软件
  • dnf
  • gem
  • pip

系统管理模块

  • firewalld
  • reboot
  • service 模块:启动服务,设置服务开机自启
  • user 模块: 创建,删除,修改账户,设置密码

用户管理模块user模块示例

在这里插入图片描述


网络管理模块

  • get_url 模块: 使用http/https/ftp 下载文件

  • nmcli 模块: 管理网络

  • uri 模块: 访问web,返回某个值

  • shell模块:执行命令(支持管道,重定向等)

  • script模块:拷贝任意脚本到远程主机,并执行该脚本


lvm管理模块

  • lvg模块:创建、删除、修改vg
  • lvol模块:创建、删除、修改lv

command和shell及script模块

无论是command或shell模块,在ansible中只能执行非交互命令.
在这里插入图片描述


command和shell模块的区别

  • command模块的命令不启动shell,直接通过ssh执行命令
  • command模块不支持bash的特性,如: 管道重定向等功能.
  • 所有需要调用shell的功能都无法使用.

在这里插入图片描述


command模块

在这里插入图片描述
ansible的默认模块是command,-a是指定参数


command模块示例

执行ad-hoc命令

# -m指定模块
## -m ping 调用ping模块
ansible all -m ping

在这里插入图片描述

# 所有机器上执行id命令
## -a是执行command 参数
ansible all -a 'id'

在这里插入图片描述

  • 指定用户执行ad-hoc命令
## -a 'id' 执行id命令
## -u 指定用户执行
ansible all -a 'id' -u devops
  • 查看主机的ip地址
ansible all -a 'ip -br a show ens160'

在这里插入图片描述


shell模块

shell模块会启动shell执行命令

  • 不可以使用shell模块执行交互命令,如: vim, top
    在这里插入图片描述

chdir参数

可以减少使用绝对路径

# chdir切换到/tmp目录后再执行创建文件命令
ansible test -m shell -a "chdir=/tmp touch a.txt b.txt c.txt d.txt e.txt"

shell模块–文件判断参数—creates和removes参数
  • creates 文件名: 文件存在,不执行命令
  • removes 文件名: 文件不存在,不执行命令
# 如果已经有密钥文件id_rsa,则不创建密钥(skip跳过)
ansible test -m shell -a "ssh-keygen -f ~/.ssh/id_rsa -N '' creates=~/.ssh/id_rsa"

# 如果没有安装unzip安装包,则不执行解压命令(skip跳过)
ansible test -m shell -a "unzip xx.zip removes=/bin/unzip"

script模块

  • script允许本地写脚本,在远端执行脚本
  • 非shell脚本(python脚本,perl脚本),可以没有+x权限

在这里插入图片描述


## copy模块示例 ```shell # 替换文件内容 [student@workstation deploy-adhoc]$ ansible localhost -m copy -a 'content="Managed by Ansible\n" dest=/etc/motd' -u root localhost | CHANGED => { "ansible_facts": { "discovered_interpreter_python": "/usr/libexec/platform-python" }, "changed": true, "checksum": "4458b979ede3c332f8f2128385df4ba305e58c27", "dest": "/etc/motd", "gid": 0, "group": "root", "md5sum": "65a4290ee5559756ad04e558b0e0c4e3", "mode": "0644", "owner": "root", "secontext": "system_u:object_r:etc_t:s0", "size": 19, "src": "/root/.ansible/tmp/ansible-tmp-1634845213.8595588-57941547245216/source", "state": "file", "uid": 0 }

提权到devops执行命令

[student@workstation deploy-adhoc]$ ansible localhost -m copy -a ‘content=" 替换文件Managed by Ansible 这是devops创建的内容\n" dest=/etc/motd’ -u devops --become

查看替换后的文件内容

[student@workstation deploy-adhoc]$ cat /etc/motd
Managed by Ansible


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

教Linux的李老师

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值