当前位置: 首页 > news >正文

【实训】自动运维ansible实训(网络管理与维护综合实训)

 来自即将退役学长的分享,祝学弟学妹以后发大财!

一 实训目的及意义

1.1 实训目的

1、熟悉自动化运维工具:实训旨在让学员熟悉 Ansible 这一自动化运维工具。通过实际操作,学员可以了解 Ansible 的基本概念、工作原理和使用方法。

2、提高运维效率:自动化运维可以大幅提高运维效率,减少手动操作的工作量。通过实训,学员可以学习如何使用 Ansible 快速完成常见的运维任务,例如部署应用、配置管理、系统监控等,从而提高整体运维效率。

3、规范化运维流程:通过使用 Ansible,可以将运维任务转化为可复用的代码,实现运维任务的规范化和标准化。实训的目的之一是让学员了解如何编写可维护的 Ansible Playbook,并应用于实际场景中,从而规范运维流程。

4、学习团队协作:Ansible 支持多主机同时操作,适用于团队协作的场景。通过实训,学员可以学习如何使用 Ansible 进行批量操作、并行执行等,培养团队协作意识和技巧。

1.2 实训意义

       通过本次实训,能让学生了解通过ansible自动化运维工具的使用,可以减少人工操作的错误和漏洞,提高运维任务的准确性和稳定性。学员通过实训可以了解和应用ansible的功能,从而提高运维效率,降低系统故障的风险。

       自动化运维要求学员具备一定的系统管理、编程和网络知识。实训通过实际操作和项目实践,培养学员的综合能力,例如问题分析和解决、编写可维护的代码等,提升学员的综合素

二 实训要求

1、搭建ansible的实验环境;搭建三台centos7版本的虚拟机,其中一台的hostname为controller,另外两台分别为node1和node2;

2、使用普通用户(你名字的全称,如zhangsan),做以下操作:针对普通用户(如zhangsan)做sudo的提权免密;针对普通用户做ssh的免密登录;完成ansible的controller的yum仓库的配置(yum -y install epel)

3、通过ansible的ad-hoc去查看主机连通性,是否可以实现基本的联通;

4、使用ansible的ad-hoc命令在node1和node2上 复制/etc/hosts文件到用户家目录下;

5、使用ansible的ad-hoc命令在node1和node2上创建用户zhangsan;

6、编写一个playbook,hosts为node1和node2,复制/etc/passwd文件,属主为upwen,属组为upwen,权限为0600;并验证结果(ansible-playbook all -a ' ls -l /home/upwen/passwd )

7、编写一个playbook,在node1和node2上执行play1,创建用户lisi,并指定其uid为1999;在node1上执行play2,删除用户lisi;(playbook执行后的结果输出,以及通过临时命令查看/etc/passwd文件当中的用户信息)

8、编写一个playbook,利用循环结构,在node1和node2上分别创建三个用户,tom,jerry,cat;(执行完成之后查看并验证结果)

三 实训内容

3.1搭建ansible的实验环境;搭建三台centos7版本的虚拟机,其中一台的hostname为controller,另外两台分别为node1和node2

修改主机名

在/etc/hosts中配置ip和域名的对应关系

用ping来检验

3.2 使用普通用户limingyuan,做以下操作:针对普通用户limingyuan做sudo的提权免密;针对普通用户做ssh的免密登录;完成ansible的controller的yum仓库的配置(yum -y install epel)

ssh-keygen创建公钥和私钥

查看公钥和私钥已存在.ssh目录中

将公钥传递给node1和node2节

发现ssh实现了免密登录

在三个主机为limingyuan用户做sudo免密

Visudo

Yum安装ansible

查看ansible版本

编辑ansible.cfg

3.3 通过ansible的ad-hoc去查看主机连通性,是否可以实现基本的联通

3.4 使用ansible的ad-hoc命令在node1和node2上 复制/etc/hosts文件到用户家目录下

3.5 使用ansible的ad-hoc命令在node1和node2上创建用户zhangsan

3.6 编写一个playbook,hosts为node1和node2,复制/etc/passwd文件,属主为upwen,属组为upwen,权限为0600;并验证结果(ansible-playbook all -a ' ls -l /home/upwen/passwd )

发现最终结果满足需求

3.7编写一个playbook,在node1和node2上执行play1,创建用户lisi,并指定其uid为1999;在node1上执行play2,删除用户lisi;(playbook执行后的结果输出,以及通过临时命令查看/etc/passwd文件当中的用户信息)

3.8 编写一个playbook,利用循环结构,在node1和node2上分别创建三个用户,tom,jerry,cat;(执行完成之后查看并验证结果)

四 实训总结与体会 

       在完成 Ansible 自动运维实训的过程中,我对自动化运维工具的能力和价值有了更深刻的认识。通过学习和实践,我深刻体会到 Ansible 的强大功能和广泛适用性,以及它对提高运维效率、降低成本的重要作用。

       首先,Ansible 提供了简单而强大的配置管理和自动化部署功能,使得我们可以轻松地管理大量的服务器和应用程序。通过编写可维护的 Ansible Playbook,我学会了如何将复杂的运维任务转化为可重复、可扩展的代码,实现了运维流程的规范化和标准化。

       其次,Ansible 的批量操作和并行执行能力使得我们能够快速、同时地管理多个主机,提高了运维效率。我学会了如何编写 Ansible 的 inventory 文件和使用各种模块来完成各种常见的运维任务,例如软件安装、配置文件管理、服务启停等,大大减少了手动操作的时间和错误。

       总的来说,Ansible 自动运维实训让我深刻认识到自动化运维的重要性和价值,它能够显著提高运维效率、降低成本,并为团队协作和技术应用能力的培养提供了良好的平台。我相信这些所学所得将在我未来的职业发展中发挥重要作用,并为我成为一名高效、有能力的运维工程师打下坚实的基础。

相关文章:

  • 小程序支付类型接入京东支付
  • JUnit
  • Hadoop3.x基础(4)- Yarn
  • Backtrader 文档学习- Sizers
  • Centos7.9安装SQLserver2017数据库
  • Java基于微信小程序的医院核酸检测服务系统,附源码
  • Android:ViewAdapter
  • RabbitMQ_00000
  • 开发实践11_Blog
  • 【Java数据结构】ArrayList和LinkedList的遍历
  • 数据结构-->线性表-->顺序表
  • Tkinter教程21:Listbox列表框+OptionMenu选项菜单+Combobox下拉列表框控件的使用+绑定事件
  • 类与对象(终章)——友元,内部类,匿名对象
  • 【Unity3D小技巧】Unity3D中UI控制解决方案
  • 私有化部署一个吃豆人小游戏
  • FastReport在线报表设计器工作原理
  • Java应用性能调优
  • mysql中InnoDB引擎中页的概念
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • vue--为什么data属性必须是一个函数
  • 从零开始学习部署
  • 从伪并行的 Python 多线程说起
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 经典排序算法及其 Java 实现
  • 如何优雅地使用 Sublime Text
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 通过git安装npm私有模块
  • 项目管理碎碎念系列之一:干系人管理
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • 如何在招聘中考核.NET架构师
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​批处理文件中的errorlevel用法
  • #if和#ifdef区别
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • (12)Linux 常见的三种进程状态
  • (数据结构)顺序表的定义
  • (转) ns2/nam与nam实现相关的文件
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .NET delegate 委托 、 Event 事件,接口回调
  • .net 验证控件和javaScript的冲突问题
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .net下简单快捷的数值高低位切换
  • .NET中使用Protobuffer 实现序列化和反序列化
  • :not(:first-child)和:not(:last-child)的用法
  • @Autowired 与@Resource的区别
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • [2018-01-08] Python强化周的第一天
  • [ANT] 项目中应用ANT
  • [bzoj 3534][Sdoi2014] 重建
  • [C#] 基于 yield 语句的迭代器逻辑懒执行
  • [Eclipse] 详细设置护眼背景色和字体颜色并导出
  • [E链表] lc83. 删除排序链表中的重复元素(单链表+模拟)
  • [iOS]-UIKit