【运维】Ansible 自动化运维工具配置及模块使用

简介: 【运维】Ansible 自动化运维工具配置及模块使用

ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppetcheffuncfabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

ansible是基于 paramiko 开发的,并且基于模块化工作,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远

程主机通讯的。

官方文档教程https://docs.ansible.com/

 

测试网络拓扑

image.png

ansible安装

配置所需安装yum源,我使用了阿里的centos7

[root@server yum.repos.d]# wget http://mirrors.aliyun.com/repo/Centos-7.repo
[root@server yum.repos.d]# yum clean all&&yum makecache
[root@server yum.repos.d]# yum -y install ansible

image.jpeg

 

ansible 配置公私钥

ansible server中创建ssh的密钥对

[root@server ansible]# ssh-keygen

image.png

 

ssh的公钥下发,实现ansible服务器与其余服务器的ssh免密登陆

[root@server ansible]# ssh-copy-id root@192.168.2.131
[root@server ansible]# ssh-copy-id root@192.168.2.132

image.jpeg

测试ssh免密登陆

image.png

 

配置hosts文件

备份默认的hosts文件,新建hosts,写入被操作端的服务器IP地址,主机组名为test

[root@server ansible]# mv hosts hosts.bak
[root@server ansible]# vim hosts
[test]
192.168.2.131
192.168.2.132

 

测试

执行ping模块,成功测试主机连通性

[root@server ansible]# ansible test -m ping

image.png

到此为止已经部署好ansible主控端,被控端无需任何配置

 

ansible-doc查询命令使用

1.查询可执行模块,用法同vim,可直接输入查找

[root@server ansible]# ansible-doc -l

image.jpeg

 

-s 查看模块的具体参数

[root@server ansible]# ansible-doc -s yum

#查看yum模块的具体用法

image.jpeg

 

 

ansible命令使用

常用语法

ansible  <主机组/IP地址/IP地址通配符>  -m <模块名>  -a <模块参数>
-t 日志输出
-u 指定用户名
-k 指定密码
-I 指定ansible的hosts文件位置
-f 连接并发数

image.png

 

ansible常用模块

setup检索系统信息

#检索系统全部信息,可加参数filter过滤所需要的信息字段

[root@server ansible]# ansible test -m setup

image.png

 

image.png

 

command&shell 命令执行

commandshell模块都可以执行命令

image.png

区别在于shell支持shell的语法,如|&;><

command不支持

image.png

user用户管理

#新建用户,设置用户名为admin,密码为加密后的123

[root@server ansible]# ansible test -m user -a 'name=tao password=mAuu0XQsSEPJg'

image.jpeg

测试

ssh登陆

image.png

 

#删除用户,状态state=absent

[root@server ansible]# ansible test -m user -a 'name=admin state=absent'
[root@server ansible]# ansible test -m user -a 'name=admin state=absent'

image.png

测试

查询系统用户admin,返回空,用户已经删除

image.png

 

copy文件分发上传

#分发文件,文件为本地/opt/test.txt,目标路径为/root/

[root@server ansible]# ansible test -m copy -a 'src=/opt/test.txt dest=/root'

image.png

 

#强制覆盖上传文件,force=yes

[root@server ansible]# ansible test -m copy -a 'src=/opt/test.txt dest=/root force=yes'

image.jpeg

 

#创建备份,当同名文件内容发生变化,将之前存在文件备份为时间日期

[root@server ansible]# ansible test -m copy -a 'src=/opt/test.txt dest=/root backup=yes'

image.jpeg

 

#直接写入创建文件,修改文件权限

[root@server ansible]# ansible test -m copy -a 'content="systemctl restart network" dest=/root/excute.sh mode=777'

image.jpeg

 

测试

有上传的txt

有上传前备份的test

有上传写入权限777sh文件

image.jpeg

 

yum安装管理

#test组中的服务器,yum安装ftp

[root@server ansible]# ansible test -m yum -a 'name=ftp'

image.jpeg

 

#yum卸载ftp, state=absent

[root@server ansible]# ansible test -m yum -a 'name=ftp state=absent'

image.jpeg

 

 

service服务管理

#启动服务mariadb,设置开机自启

# state有四种状态, started-启动服务,stopped停止服务, restarted重启服务,reloaded重载配置

[root@server ansible]# ansible test -m service -a 'name=mariadb state=started enabled=yes'

image.jpeg

检测

检测3306端口开启,服务已经正常启动

image.png

相关文章
|
10天前
|
Java 测试技术 数据安全/隐私保护
软件测试中的自动化策略与工具应用
在软件开发的快速迭代中,自动化测试以其高效、稳定的特点成为了质量保证的重要手段。本文将深入探讨自动化测试的核心概念、常见工具的应用,以及如何设计有效的自动化测试策略,旨在为读者提供一套完整的自动化测试解决方案,帮助团队提升测试效率和软件质量。
|
3天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
58 16
Selenium:强大的 Web 自动化测试工具
|
9天前
|
运维 Ubuntu 应用服务中间件
自动化运维之路:使用Ansible进行服务器管理
在现代IT基础设施中,自动化运维已成为提高效率和可靠性的关键。本文将引导您通过使用Ansible这一强大的自动化工具来简化日常的服务器管理任务。我们将一起探索如何配置Ansible、编写Playbook以及执行自动化任务,旨在为读者提供一条清晰的路径,从而步入自动化运维的世界。
|
6天前
|
运维 网络安全 Python
自动化运维:使用Ansible实现批量服务器配置
在快速迭代的IT环境中,高效、可靠的服务器管理变得至关重要。本文将介绍如何使用Ansible这一强大的自动化工具,来简化和加速批量服务器配置过程。我们将从基础开始,逐步深入到更复杂的应用场景,确保即使是新手也能跟上节奏。文章将不包含代码示例,而是通过清晰的步骤和逻辑结构,引导读者理解自动化运维的核心概念及其在实际操作中的应用。
|
9天前
|
运维 Kubernetes Devops
自动化运维:从脚本到工具的演进之旅
在数字化浪潮中,自动化运维成为提升效率、保障系统稳定的关键。本文将探索自动化运维的发展脉络,从基础的Shell脚本编写到复杂的自动化工具应用,揭示这一技术变革如何重塑IT运维领域。我们将通过实际案例,展示自动化运维在简化工作流程、提高响应速度和降低人为错误中的重要作用。无论你是初学者还是资深专家,这篇文章都将为你提供宝贵的洞见和实用的技巧。
|
7天前
|
运维 Ubuntu 网络协议
自动化运维:使用Ansible进行服务器配置管理
在现代IT架构中,自动化运维已成为提升效率、减少人为错误的关键。本文将介绍如何使用Ansible这一强大的自动化工具来简化和标准化服务器的配置管理过程。通过具体的代码示例和操作步骤,我们将展示如何快速部署应用、管理配置以及自动化日常任务,从而确保环境的一致性和可靠性。
|
13天前
|
机器学习/深度学习 运维 监控
智能化运维:从自动化到AIOps的演进之路####
本文深入探讨了IT运维领域如何由传统手工操作逐步迈向高度自动化,并进一步向智能化运维(AIOps)转型的过程。不同于常规摘要仅概述内容要点,本摘要将直接引入一个核心观点:随着云计算、大数据及人工智能技术的飞速发展,智能化运维已成为提升企业IT系统稳定性与效率的关键驱动力。文章详细阐述了自动化工具的应用现状、面临的挑战以及AIOps如何通过预测性分析和智能决策支持,实现运维工作的质变,引领读者思考未来运维模式的发展趋势。 ####
|
13天前
|
机器学习/深度学习 数据采集 人工智能
智能化运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的崛起背景,深入分析了其核心概念、关键技术、应用场景及面临的挑战,并对比了传统IT运维模式,揭示了AIOps如何引领运维管理向更高效、智能的方向迈进。通过实际案例分析,展示了AIOps在不同行业中的应用成效,为读者提供了对未来智能运维趋势的洞察与思考。 ####
34 1
|
18天前
|
机器学习/深度学习 人工智能 运维
自动化运维之路:从脚本到工具的演进
在IT运维领域,效率和准确性是衡量工作成效的关键指标。随着技术的发展,自动化运维逐渐成为提升这两个指标的重要手段。本文将带领读者了解自动化运维的演变历程,从最初的简单脚本编写到现今复杂的自动化工具应用,展示如何通过技术提升运维效率。文章不仅介绍理论和实践案例,还提供了代码示例,帮助读者理解自动化运维的实际应用场景。
|
2月前
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进
本文探讨了如何通过自动化和智能化手段,提升IT运维效率与质量。首先介绍了自动化在简化操作、减少错误中的作用;然后阐述了智能化技术如AI在预测故障、优化资源中的应用;最后讨论了如何构建一个既自动化又智能的运维体系,以实现高效、稳定和安全的IT环境。
73 4