当前位置: 首页 > news >正文

网站架构知识之Ansible模块(day021)

1.Ansible模块

作用:通过ansible模块实现批量管理

2.command模块与shell模块

command模块是ansible默认的模块,适用于执行简单的命令,不支持特殊符号

案列01,批量获取主机名

ansible all -m command -a 'hostname'

all表示对主机清单所有组进行操作,-m  command表示使用command模块(默认是此模块),-a指定模块中的选项。

shell模块相比command可以识别特殊符号

案列02,删除/tmp目录下的所有文件

ansible all -m shell -a 'rm -rf   /tmp/*'

3.script模块

执行流程:分发脚本,在被管理端执行脚本

案例03,被管理端执行指定目录下的脚本

ansible all -m script -a '/server/scripts/ansible-scripts.sh'

4.file模块

管理文件,目录,软链接

相关选项

path        路径(目录,文件)(必须要写)

state        state=directory        创建目录

                state=file                 默认,更新文件,文件不存在也不创建

                state=link                创建软连接

                state=touch             创建文件

                state=absent           删除

mode       mode=755              创建并修改权限

owner       owner=root

group        group=root

案例03:所有被管理端的/tmp目录下创建day021.txt

ansible all -m file -a 'path=/tmp/day021.txt state=touch'

案例04:将/tmp目录下的day021.txt新建软连接到tmpls目录中

ansible all -m file -a 'src=/tmp/day021.txt path=/tmpls/day021.txt state=link'                     

5.copy模块

相关选项

src          管理端源文件

dest        被管理端目录/文件

backup    backup=yes,会在覆盖前备份

mode       修改权限

owner        修改为指定所有者

group        修改为指定用户组

案例05:将管理端hosts文件发送给被管理端/tmp/day021/的目录下

ansible all -m copy -a 'src=/etc/hosts dest=/tmp/day021/'

5.systemd模块

name         用于指定服务名称

enabled     yes开机自启动

state           started        开启

                   stopped      关闭

                   reloaded      重载

                   restarted      重启

daemon-reload        yes是否重新加载对应服务的管理配置文件

6.yum模块

包含了yum和apt

name                 指定软件包名字

state                  installed安装

                          removed删除

                          lastest安装或更新

update_cache   更新本地yum缓存

7.get_url模块

url                       指定要下载的地址

dest                    下载到哪一个目录

后续可以调用yum模块安装本地的软件 name=/app/tools/xxxxx.rpm即可

8.user模块

name                      用户名

uid                          指定uid

group                     指定用户组

shell                       指定解释器

crete_home          (yes/no)是否创建用户家目录

state                       present(添加)absent(删除)

password                加密的密码

更新密码

ansible all  -m user -a "name=用户名 password={{ '新密码' | password_hash('sha512', '加密字符串') }} state=present"

9.mount模块

实现mount命令进行挂载,同时修改/etc/fstab进行永久挂载

fstype        指定文件系统

src             源地址(挂载nfs,eg  172.16.1.31:/data)

path           挂载点

state         mounted,挂载并修改fstab        

                 absent,卸载并修改fstab

                 unmounted,卸载但不修改fstab

                 present,仅修改fstab,不挂载

10.cron模块

-name        定时任务名字,对应注释内容

minute        分钟  minute="*/2"

hour            默认*

day

month

week

job              脚本位置

state           present(添加),absent(删除)

将时间同步写到定时任务,每五分钟同步一次

ansible all -m cron -a 'name=sync_time minute="*/5" job="/usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null" state=present'

结果


http://www.mrgr.cn/news/69924.html

相关文章:

  • 【MYSQL】主从复制机制(图解)
  • RabbitMQ集群搭建
  • VTK知识学习(7)-纹理贴图
  • PyQt5 详细安装与配置教程及使用
  • 艾体宝方案丨制造业BI解决方案:推动智能生产和数字化转型
  • python printf中文乱码
  • SpringBoot中的两种字段自动填充方式
  • HTTP —— OSI七层模型
  • 在 Mac 上使用 Docker 安装宝塔并部署 LNMP 环境
  • SCAU 华南农业大学 高级程序设计语言(C语言) 教材习题题解
  • distances = np.linalg.norm(data[:, None] - centers, axis=2)
  • spring-security(记住密码,CSRF)
  • C#-抽象类、抽象函数
  • 腾讯云双11狂欢:拼团优惠、会员冲榜、限时秒杀,多重好礼等你来拿!
  • 论文解读之SDXL: Improving Latent Diffusion Models forHigh-Resolution Image Synthesis
  • 「iOS」——知乎日报第三周总结
  • 销售管理SCRM助力企业高效提升业绩与客户关系管理
  • 【C++练习】二进制到十进制的转换器
  • The Rank-then-Encipher Approach
  • 「Mac玩转仓颉内测版1」入门篇1 - Cangjie环境的搭建
  • goframe开发一个企业网站 开发环境DOCKER 搭建16
  • MATLAB实现最大最小蚁群算法(Max-Min Ant Colony Optimization, MMAS)
  • leetcode hot100【LeetCode 131.分割回文串】java实现
  • Jquery添加或删除Class属性实例代分享
  • Linux应用项目之量产工具(一)——显示系统
  • SwiftUI开发教程系列 - 第7章:数据流和状态管理