ansible简单管理其它主机和常用模块示例

简介: ansible简单管理其它主机和常用模块示例

好久没玩ansible了,再来回顾一下使用过程。ansible只需要在ansible controller节点(操作机)安装即可,其它节点可以直接通过SSH协议进行连接操作。


1.安装


控制端安装epel-release yum源

yum -y install epel-release

安装ansible

yum -y install ansible

验证安装是否成功安装

rpm -qa | grep ansible


image.png


2.主机清单


ansible controller在对主机进行操作时,仅认为主机清单中定义的主机列表,即从主机清单中读取到主机列表时才可进行配置。主机清单用于ansible读取配置主机列表,实现主机分组功能。

主机清单存储位置:

vim /etc/ansible/hosts

比如常见分组(主机名需要能够解析),把web的服务器地址放在一个分组里,涉及特殊端口和主机名的形式:

[web]
192.168.31.220 
192.168.31.221:5222
web01


3.应用案例


案例1:ping

首先要对多主机之前实现免密登录:

ssh-keygen -t rsa -f /root/.ssh/id_rsa -N ''

传递公钥

ssh-copy-id 远程主机名称

比如我这里对192.168.31.220这台主机进行ping测试,-m后接模块名称:

ansible 192.168.31.220 -m ping

如果返回结果为pong,表明通了。注意:这里的ping其实是一种“假”ping,实际是使用ssh功能连接到客户端中,表明此服务器正常,并不是使用icmp返回数据包的形式。


image.png


案例2:cron时间同步

用法:

ansible 主机清单中IP或分组名称 -m 模块 -a "参数"

定义主机每小时与时钟源同步一次

ansible 192.168.31.220 -m cron -a 'name="test cron1" job="ntpdate ntp.aliyun.com" minute=0 hour=*/1'

请到远程查看主机结果,我这里在同一台机器上:

crontab -l

可以看到已经添加好定时任务。


image.png


案例3:copy同步文件

比如我有一个需求,需要把本地主机的/etc/hosts文件拷贝到目标主机的/tmp目录下,使用copy模块。用法:

ansible 主机清单中IP或分组名称 -m 模块 -a "参数"

copy模块应用(我这里已经事先定义好ansible hosts文件):

ansible blog.aoarasi.com -m copy -a "src=/etc/hosts dest=/tmp"
# 通过content直接提供文件内容,\n表示回车
ansible blog.aoarasi.com -m copy -a "content='hello world\n' dest=/tmp/a.txt"

image.png


案例4:fetch模块

与copy类似,但是作用相反,可以将其它主机的文件拷贝到本地

ansible blog.aoarasi.com -m fetch -a "src=/etc/hostname dest=/tmp"

ansible会自己创建一个目标主机的目录,防止同名冲突。

案例5:yum 模块

# 安装zip软件包
ansible blog.aoarasi.com -m yum -a "name=unzip state=present"
# 升级zip软件包,软件名称可以是*,代表升级所有软件包
ansible blog.aoarasi.com -m yum -a "name=unzip state=latest"
# 卸载unzip软件包
ansible blog.aoarasi.com -m yum -a "name=unzip state=absent"
相关文章
|
3月前
|
缓存 Shell Linux
[ansible]常用内置模块
[ansible]常用内置模块
|
4月前
|
Shell 应用服务中间件 Linux
Ansible的常用模块
Ansible的常用模块
97 6
|
4月前
|
Shell 数据安全/隐私保护
Ansible Ad-hoc,命令执行模块
Ansible Ad-hoc,命令执行模块
43 1
|
4月前
|
运维 Linux 应用服务中间件
Linux之自动化运维工具ansible、ansible模块(2)
Linux之自动化运维工具ansible、ansible模块(2)
|
4月前
|
运维 Linux Shell
Linux之自动化运维工具ansible、ansible模块(1)
Linux之自动化运维工具ansible、ansible模块(1)
|
6月前
|
关系型数据库 MySQL 网络安全
ansible 深入介绍之 主机清单与playbook
ansible 深入介绍之 主机清单与playbook
|
6月前
|
算法 安全 Linux
Ansible 中的copy 复制模块应用详解
Ansible 中的copy 复制模块应用详解
430 1
|
6月前
|
运维 关系型数据库 MySQL
Ansible自动化运维工具主机清单配置
Ansible自动化运维工具主机清单配置
169 0
|
8天前
|
运维 应用服务中间件 网络安全
自动化运维的新篇章:使用Ansible进行服务器配置管理
【10月更文挑战第34天】在现代IT基础设施的快速迭代中,自动化运维成为提升效率、确保一致性的关键手段。本文将通过介绍Ansible工具的使用,展示如何实现高效的服务器配置管理。从基础安装到高级应用,我们将一步步揭开自动化运维的神秘面纱,让你轻松掌握这一技术,为你的运维工作带来革命性的变化。
|
3天前
|
运维 应用服务中间件 Linux
自动化运维的利器:Ansible在配置管理中的应用
【10月更文挑战第39天】本文旨在通过深入浅出的方式,向读者展示如何利用Ansible这一强大的自动化工具来优化日常的运维工作。我们将从基础概念讲起,逐步深入到实战操作,不仅涵盖Ansible的核心功能,还会分享一些高级技巧和最佳实践。无论你是初学者还是有经验的运维人员,这篇文章都会为你提供有价值的信息,帮助你提升工作效率。