目 录CONTENT

文章目录

Ansible ad-hoc命令行

vanegoo
2024-04-20 / 0 评论 / 0 点赞 / 42 阅读 / 7371 字 / 正在检测是否收录...

Ansible ad-hoc 是一种通过命令行批量管理的方式

  • 格式: ansible 主机集合 -m 模块名 -a "具体命令"

  • 其它选项:

    • -k 使用密码远程

    • -i 指定主机q清单文件

[root@control ~]# cd  ~/ansible
[root@control ansible]# ansible  all  --list-hosts              #查看所有主机列表

[root@control ansible]# ansible  node10  -m  ping               #调用ping模块
[root@control ansible]# ansible  node10,node20  -m  ping       
[root@control ansible]# ansible  webserver  -m  ping

Ansible帮助命令

ansible-doc 		#帮助命令 
ansible-doc -l   	#列出所以的模块
ansible-doc 模块名   #查看模块的详细信息
ansible-doc 模块名 -s  #查看模块的选项使用说明
[root@control ansible]# ansible node10 -m command -a "uptime"
[root@control ansible]# ansible node10 -m command -a "uname -r"
[root@control ansible]# ansible node10 -m command -a "ip a s eth0"
[root@control ansible]# ansible node10 -a "ip a s eth0"
[root@control ansible]# ansible all -a "date"
[root@control ansible]# ansible-doc -l              #列出所有模块
[root@control ansible]# ansible-doc -l | grep yum    #过滤模块
[root@control ansible]# ansible-doc yum              #查看模块帮助

ad-hoc 模式执行流程

模块执行的工作流程:

  • 1.主控端命令行执行命令;

  • 2.将模块拷贝到受控端;

  • 3.按照模块定义的操作在受控端执行;

  • 4.返回信息,删除受控端模块;

Ansible执行命令的返回值颜色:

屎黄色:执行命令成功,并且做了修改;

草帽绿:执行命令成功,只查看信息,没有修改

玫瑰红:执行失败,报错

葡萄紫:表示对命令发错的操作有警告信息

Ansible常见返回值

返回值

返回值含义

changed

几乎所有的Ansible模块都会返回该变量,表示模块是否对远程主机执行了修改操作

failed

如果模块未能执行完成,将返回failed为true

msg

模块执行失败的原因,常见的错误如ssh连接失败

rc

与命令行工具相关的模块会返回rc,表示执行Linux命令的状态码

stdout

与rc类似,返回的是标准输出的结果

stderr

与rc类似,返回的是标准错误的结果

backup_file

所有存在backup选项的模块,用来返回备份文件的路径

results

应用在playbook中存在循环的情况,返回多个结果

常用模块

command             # 默认使用模块,用于远程执命令,不支持管道
shell               # 远程执行命令,支持管道 
raw                 # ssh登录,再执行
script              # 远程执行本地脚本
yum                 # 远程安装
copy                # 推送文件
file                # 对文件操作
service             # 控制启动关闭服务
systemd             # 控制启动关闭服务
cron                # 定时任务模块
mount               # 挂载与卸载模块
user/group          # 用于管理的用户创建与删除
unarchive           # 解压缩模块
get_url	            # 下载文件,类似于curl
firewalld           # 防火墙
selinux	            # selinux
setup               # 获取主机信息
git	                # git命令模块
sysctl              # 控制内核

0

评论区