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"
相关文章
|
7月前
|
运维 Shell Linux
Ansible自动化运维工具之常用模块使用实战(5)
Ansible自动化运维工具之常用模块使用实战(5)
|
7月前
|
运维 Kubernetes 网络安全
Ansible自动化运维工具之主机管理与自定义配置文件(2)
Ansible自动化运维工具之主机管理与自定义配置文件(2)
|
7月前
|
运维 Linux
Ansible自动化运维工具之常用模块使用实战(6)
Ansible自动化运维工具之常用模块使用实战(6)
|
6月前
|
网络安全 数据安全/隐私保护
ansible的get_url模块
ansible的get_url模块
|
6月前
|
存储 Linux Python
ansible手动添加模块
ansible手动添加模块
49 0
|
9月前
|
运维 监控
【运维知识进阶篇】Zabbix5.0稳定版详解10(Zabbix自动注册+Ansible自动部署,实现一条命令监控任意主机)
【运维知识进阶篇】Zabbix5.0稳定版详解10(Zabbix自动注册+Ansible自动部署,实现一条命令监控任意主机)
112 0
|
9月前
|
运维 Ubuntu 应用服务中间件
【运维知识进阶篇】Ansible自动化运维-Ansible安装与主机列表
【运维知识进阶篇】Ansible自动化运维-Ansible安装与主机列表
117 0
|
9月前
Ansible模块管理——磁盘管理模块、mount模块
Ansible模块管理——磁盘管理模块、mount模块
256 0
|
9月前
|
网络协议 网络安全 数据安全/隐私保护
Ansible模块介绍——配置网络模块、上传下载文件模块
Ansible模块介绍——配置网络模块、上传下载文件模块
275 0
|
9月前
|
网络协议 网络安全
Ansible模块介绍——防火墙模块
Ansible模块介绍——防火墙模块
146 0