网站架构知识之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'

结果

相关推荐
腾科张老师4 小时前
为什么要使用Ansible实现Linux管理自动化?
linux·网络·学习·自动化·ansible
脱了格子衬衫1 天前
linux安装ansible
linux·运维·ansible
ccnnlxc1 天前
网站架构知识之Ansible剧本(day022)
ansible
jyan_敬言3 天前
【Linux】Ansible集中化运维工具(详解)安装、常用模块、playbook脚本
android·linux·运维·服务器·c语言·数据结构·ansible
ccnnlxc3 天前
网站架构知识之Ansible进阶2(day023)
ansible
ccnnlxc3 天前
网站架构知识之Ansible进阶(day022)
linux·服务器·ansible
咕噜Yuki06093 天前
RHCE 8.0考试指南:使用Ansible进行自动化管理
运维·自动化·ansible·rhce考试·职业技能认证·rhce8.0
赶紧回家去3 天前
ansible进阶功能
ansible
紫晓宁7 天前
jmeter结合ansible分布式压测--3压测执行
分布式·jmeter·ansible