IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Ansible常用模块 -> 正文阅读

[系统运维]Ansible常用模块

?ansible常用模块:

  • command

命令中使用-m来指定具体的模块,默认情况下不指定-m时是使用command模块:

#查看usr目录

ansible all -m command -a 'ls /usr'

ansible all -a 'ls /usr'
  • shell
#创建文件
ansible all -m shell -a '> /usr/test.txt'

#创建文件
ansible all -m shell -a 'touch /usr/test.sh'

#删除文件
ansible all -m shell -a 'rm -f /usr/test.sh'

#查看usr目录
ansible all -m shell -a 'ls /usr'
  • script
#执行某个脚本
ansible all -m script -a '/usr/test.sh'

使用scirpt模块可以直接将主控机器上的脚本在被控机器上执行
  • copy
#将主控机器上的文件拷贝到被控主机上,同时可以加上mode、owner等参数对文件权限进行修改
ansible all -m copy -a 'src=/usr/local/test.txt dest=/usr'


#在被控机器上创建文件并添加内容
ansible all -m copy -a 'content="Hello World!" dest=/usr/testcopy.txt'
  • fetch

fetch模块的功能与copy模块类似,但是fetch是从远程被控主机上拉取文件放到主控机器上。

通过ansible-doc fetch命令可以看到fetch只能拉取单个文件,而不能拉取目录:

对于拉取过来的文件,会在主控机器上dest指定的目录下创建一个以被控主机命名的目录,然后加上被拉取的文件的路径:

#将被控主机的test.txt文件拷贝到主控机器上的local目录下
ansible all -m fetch -a "src=/usr/local/wyh/test.txt dest=/usr/local"

可以看到在主控机器上的dest指定目录下生成了上述的一串目录:

  • ?file

?file模块中的参数path可以替换为name/dest:

#创建test0814文件
ansible all -m file -a 'dest=/usr/local/wyh/test0814 state=touch'

#删除文件
ansible all -m file -a 'path=/usr/local/wyh/test0814 state=absent'

#创建目录
ansible all -m file -a 'path=/usr/local/wyh/testdir state=directory'

#删除目录
ansible all -m file -a 'path=/usr/local/wyh/testdir state=absent'

#创建软链接
ansible all -m file -a 'src=/usr/local/wyh/test dest=/usr/local/test.link state=link'

#删除软链接(删除之后src的目录是还存在的)
ansible all -m file -a 'dest=/usr/local/test.link state=absent'   
  • ?hostname
#修改hostname
ansible 192.168.184.129 -m hostname -a 'name=129node'
  • cron
#创建一个每两分钟执行一次的任务,任务为输出自定义的语句
ansible all -m cron -a 'name=test-cron minute=*/2 job="echo test cron module"'

可以在被控主机上看到已经创建了任务:
[root@localhost etc]# crontab -u root -l

[root@localhost etc]# crontab -e

#禁用创建的定时任务(disabled的值可以是yes/no/true/false)
ansible all -m cron -a 'disabled=true name=test-cron job="echo test cron module"'

?禁用之后再去被控机器上查看任务就会发现它已经被注释掉了:


但是在上面的例子中可以发现任务被注释掉时的cron表达式发生了变化,全部变成了* * * * *,所以为了保持原有的cron表达式,我们在执行disable时需要把原来指定的执行时间也加上,这个时间要和原来保持一致,禁用之后如果需要重新启用时,参数中也必须指定时间,否则还是全*。另外还有一个参数backup,这个是用来在对原有的任务做修改或删除操作时先进行备份,为了安全起见,我们也把这个参数设置为yes。

重新创建一个任务,然后在disable禁用/启用时加上时间,这时注释掉时就不会把时间修改为全*了:

ansible all -m cron -a 'name=0814 job="echo 0814" hour=*/3'

ansible all -m cron -a 'disabled=true name=0814 job="echo 0814" hour=*/3 backup=yes'

ansible all -m cron -a 'disabled=no name=0814 job="echo 0814" hour=*/3'

#删除任务
ansible all -m cron -a 'name=0814 job="echo 0814" state=absent'
  • ?yum

?要想使用yum模块,首先必须保证被控机器上是有yum源的:

#安装tree(这里使用按抓个tree来做测试,由于state的默认值是present,所以安装时可以不写state)
ansible all -m yum -a 'name=tree state=present'

执行前,被控机器上没有tree命令:

执行后:

?也可以使用list参数来查看不同状态的列表:

#查看已经install的命令
ansible all -m yum -a 'list=installed'

#一次安装多个
ansible all -m yum -a 'name=a,b,c,d'

#如果想要把主控机器上的rpm包放在被控机器上然后安装,可以先使用copy模块将rpm包放到被控机器上,然后在使用yum模块进行安装
ansible all -m yum -a 'name=/usr/local/xxxxxx.rpm'
  • ?service
#启动httpd
ansible all -m service -a 'name=httpd state=started'
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-15 15:58:38  更:2021-08-15 15:59:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 20:39:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码