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"
相关文章
|
2月前
|
缓存 Shell Linux
[ansible]常用内置模块
[ansible]常用内置模块
|
3月前
|
Shell 应用服务中间件 Linux
Ansible的常用模块
Ansible的常用模块
56 6
|
3月前
|
Shell 数据安全/隐私保护
Ansible Ad-hoc,命令执行模块
Ansible Ad-hoc,命令执行模块
31 1
|
3月前
|
运维 Linux 应用服务中间件
Linux之自动化运维工具ansible、ansible模块(2)
Linux之自动化运维工具ansible、ansible模块(2)
|
3月前
|
运维 Linux Shell
Linux之自动化运维工具ansible、ansible模块(1)
Linux之自动化运维工具ansible、ansible模块(1)
|
5月前
|
关系型数据库 MySQL 网络安全
ansible 深入介绍之 主机清单与playbook
ansible 深入介绍之 主机清单与playbook
|
5月前
|
算法 安全 Linux
Ansible 中的copy 复制模块应用详解
Ansible 中的copy 复制模块应用详解
307 1
|
5月前
|
运维 关系型数据库 MySQL
Ansible自动化运维工具主机清单配置
Ansible自动化运维工具主机清单配置
128 0
|
9天前
|
运维 安全 应用服务中间件
自动化运维的利剑:Ansible实战应用
【9月更文挑战第24天】在现代IT基础设施的快速迭代与扩展中,自动化运维成为提升效率、保障稳定性的关键。本文将深入探讨Ansible这一流行的自动化工具,通过实际案例分析其如何简化日常运维任务,优化工作流程,并提高系统的可靠性和安全性。我们将从Ansible的基础概念入手,逐步深入到高级应用技巧,旨在为读者提供一套完整的Ansible应用解决方案。
|
14天前
|
运维 Ubuntu 应用服务中间件
自动化运维之路:Ansible实战指南
【9月更文挑战第18天】在追求效率和稳定性的今天,自动化运维已成为IT领域的热门话题。本文将引导你通过实际案例学习如何使用Ansible进行自动化配置管理、任务执行和流程编排,从而提升你的工作效率并减少人为错误。我们将从基础概念出发,逐步深入到高级应用,让你能够轻松掌握这一强大的自动化工具。