Ansible_基础模块

特点:无主从,即装即用,基于ssh

安装ansible

yum install epel-release -y yum install ansible -y

定义主机清单

vim /etc/ansible/hosts

基础使用方式

# ansible命令格式 ansible 主机清单中IP或分组名称 -m 模块 -a "参数" # 列出主机清单 ansible 主机清单中IP或分组名称 --list # 查看详细帮助 ansible 模块名 # 查看简短帮助 ansible -s 模块名

常用模块

1.command

ansible 192.168.18.129 -m command -a "ifconfig" #-m command是默认的可以省略 #例如: ansible 主机清单中IP或分组名称 -a uptime

2.shell

带管道符,变量的命令用-m shell这个模块

3.script

使用本地管理主机的脚本文件用 -m script这个模块

4.copy

将本地文件拷贝到目标主机中

# 以下举例中all指所有主机 # mode表示权限,owner表示拥有者,backup是否备份 ansible all -m copy -a 'src=*** dest=***** mode=000 owner=somebody backup=yes' # content类似于[echo>>],将内容附加进去,且支持换行符[\n] ansible all -m copy -a 'content="hello\nthanks\n" dest=****'

5.fetch

从被控端取文件至ansible端,与copy相反,目录可先tar

# 这里不支持多文件抓取,无法使用*通配 ansible all -fetch -a 'src=被控端文件路径 dest=ansible端文件路径' # 但是可以将要抓取的先打包成一个文件,其实是有打包的模块的 ansible all -m shell -a 'tar jcf log.tar.xz /var/log/*.log' ansible all -m fetch -a 'src=/root/log.tar.xz dest=ansible端文件路径'

6.file

文件操作

# name后是被控端文件路径,stata指的是操作状态 # touch:生成 absent:删除 directory:创建文件夹 link:创建软连接 ansible all -m file -a 'name=*** state=touch'

7.hostname

修改主机名

# 这一步是立即生效和保存的 ansible 主机名 -m hostname -a 'name=***'

8.cron

创建计划任务

# 设置计划任务 ansible all -m cron -a 'miunte=* weekday=1,3,5 job="想要执行的命令" name=自定义' # 取消计划任务,job的参数必须写,name的参数最好写上 ansible all -m cron -a 'disabled=true job="想要执行的命令" name=自定义' # 想要重新开启这个计划任务直接将disabled的参数改成false即可 ansible all -m cron -a 'disabled=false job="想要执行的命令" name=自定义' # yes或者no也是可以的! ansible all -m cron -a 'disabled=yes job="想要执行的命令" name=自定义' ansible all -m cron -a 'disabled=no job="想要执行的命令" name=自定义' # 要删除此计划任务要用state=absent ansible all -m cron -a 'job="想要执行的命令" name=自定义 state=absent'

9.yum

包管理工具

# 指定名称安装,安装多个用逗号隔开 ansible all -m yum -a 'name=***,&&,%%%' # 卸载,老规矩absent ansible all -m yum -a 'name=***,&&,%% state=absent' # 列出已经安装的 ansible all -m yum -a 'list=installed' # 使用rpm包安装 # 先将rpm推送到主机 ansible [目标主机] -m copy -a 'src=源地址 dest=目的地址' # 执行rpm包安装,忽略key的检查加上disable_gpg_check=yes ansible [目标主机] -m yum -a 'name=rpm包的路径' # 更新yum的缓存,需指定包名 ansible all -m yum -a 'name=*** update_cache=yes'

10.service

服务管理

# 开启、enable:是否开机自弃 ansible all -m service -a 'name=*** state=started enable=yes' # 重启、停止 ansible all -m service -a 'name=*** state=restarted/stopped'

11.user,group

用户和组管理

# 这里nginx是系统账号一般shell类型是nologin # home指定用户家目录 # group属于哪个主组 # groups属于哪个辅助组 # uid指定uid号 # comment:描述 ansible all -m user/group -a 'name=*** shell=/sbin/nologin system=yes home=/var/nginx groups=root,bin uid/gid=80 comment="nginx service"' # 删除用户还是老样子state=absent,remove:删除用户家目录 ansible all -m user -a 'name=*** state=absent remove=yes'

12.setup

用于查看所有信息的模块
这里可以在参数中使用filter过滤所需要的信息

ansible -m setup -a 'filter=ansible_all_ipv4_address'

__EOF__

本文作者带着泥土
本文链接https://www.cnblogs.com/obitoma/p/13878876.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   带着泥土  阅读(144)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

了解更多