每日一学——自动化工具(Ansible)

3.1 Ansible
3.1.1 Playbook编写指南

嘿,小伙伴们!你们知道吗,运维工作其实也可以变得像搭积木一样简单!今天我们要介绍的就是Ansible,一款非常流行的自动化运维工具。通过Ansible,我们可以用Playbook来描述我们需要执行的任务,就像编写剧本一样。让我们一起来看看如何用Ansible来简化我们的工作吧!

Playbook编写指南:

Playbook是Ansible的核心组成部分,它是一个YAML格式的文件,里面包含了我们需要执行的一系列任务。每个任务都称为一个Task,而Task是由一个个Module(模块)组成的。

Playbook的基本结构:

---
-name:ExamplePlaybook
hosts:all
become:yes
tasks:
-name:Ensurepackageisinstalled
apt:
name:nginx
state: present

在这个例子中,我们定义了一个Playbook,它将会在所有被指定的主机上执行以下任务:

  1. 1. 确保nginx包已安装:使用apt模块来安装nginx包。

Playbook的关键要素:

  • • name:给Playbook或Task起一个名字,方便识别。

  • • hosts:指定要执行任务的主机或主机组。

  • • become:是否以root权限执行任务,默认为no,如果需要以root权限执行,则设置为yes

  • • tasks:一系列需要执行的任务列表。

3.1.2 模块详解

Ansible的强大之处在于它的模块化设计。每一个模块都可以完成一项特定的任务,比如安装软件包、修改文件、启动服务等等。下面我们来看一些常用的模块:

常用模块:

  1. 1. apt/yum:用于管理Debian/Ubuntu或RHEL/CentOS系统上的软件包。apt:
      name: nginx
      state: present

  2. 2. file:用于管理文件或目录的属性。file:
      path: /etc/nginx/sites-available/default
      state: absent

  3. 3. copy:用于复制文件到远程主机。copy:
      src: /path/to/local/file
      dest: /path/on/remote/host

  4. 4. template:用于渲染Jinja2模板文件,并将其复制到远程主机。template:
      src: /path/to/local/template.j2
      dest: /path/on/remote/host

  5. 5. service:用于管理服务的状态。service:
      name: nginx
      state: restarted

  6. 6. shell/command:执行shell命令或命令行程序。shell: systemctl restart nginx

  7. 7. user/group:管理用户和用户组。user:
      name: example_user
      state: present

3.1.3 实战案例:自动化配置管理

现在,让我们通过一个实际的例子来看看如何使用Ansible来自动化配置管理。假设我们需要在一个远程主机上安装nginx,并配置其默认站点。

步骤1:准备Ansible环境

  1. 1. 安装Ansible在控制节点(通常是你的开发机器)上安装Ansible。如果你使用的是Linux,可以使用包管理器安装:sudo apt-get update
    sudo apt-get install ansible

  2. 2. 创建主机清单文件在控制节点上创建一个名为hosts的文件,列出需要管理的远程主机:[webservers]
    server1 ansible_host=192.168.1.100 ansible_user=root ansible_ssh_private_key_file=~/.ssh/id_rsa
    server2 ansible_host=192.168.1.101 ansible_user=root ansible_ssh_private_key_file=~/.ssh/id_rsa

步骤2:编写Playbook

  1. 1. 创建Playbook文件在控制节点上创建一个名为nginx-setup.yml的Playbook文件:---
    -name:ConfigureNGINXWebServer
    hosts:webservers
    become:yes
    tasks:
    -name:InstallNGINX
    apt:
    name:nginx
    state:present
    -name:Removedefaultsite
    file:
    path:/etc/nginx/sites-available/default
    state:absent
    -name:Copycustomsiteconfiguration
    copy:
    src:/path/to/local/site.conf
    dest:/etc/nginx/sites-available/
    owner:root
    group:root
    mode:'0644'
    -name:Enablenewsite
    command:ln-sf/etc/nginx/sites-available/site.conf/etc/nginx/sites-enabled/
    -name:RestartNGINXservice
    service:
    name:nginx
    state: restarted

  2. 2. 准备配置文件创建一个名为site.conf的文件,放置在/path/to/local/目录下,用于配置NGINX。

步骤3:执行Playbook

  1. 1. 运行Playbook使用以下命令运行Playbook:ansible-playbook -i hosts nginx-setup.yml如果一切顺利,你应该会看到类似下面的输出:PLAY [Configure NGINX WebServer]**************

    TASK [Install NGINX]***************************
    changed=1 of 1

    TASK [Removedefault site]*********************
    changed=1 of 1

    TASK [Copy custom site configuration]**********
    changed=1 of 1

    TASK [Enablenew site]*************************
    changed=1 of 1

    TASK [Restart NGINX service]*******************
    changed=1 of 1

    PLAY RECAP *************************************
    server1              : ok=5    changed=5    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
    server2              : ok=5    changed=5    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

就这样,通过几个简单的步骤,我们就完成了使用Ansible来自动化配置管理的任务。是不是感觉运维工作变得轻松了许多呢?赶紧动手试试吧,相信你会爱上这种高效的工作方式的!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/948273.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux-Ubuntu之I2C通信

Linux-Ubuntu之I2C通信 一,I2C通信原理1.写时序2.读时序 二,代码实现三,显示 一,I2C通信原理 使用I2C接口驱动AP3216C传感器,该传感器能实现两个效果,一个是感应光强,另一个是探测物体与传感器…

音视频入门基础:MPEG2-PS专题(4)——FFmpeg源码中,判断某文件是否为PS文件的实现

一、引言 通过FFmpeg命令: ./ffmpeg -i XXX.ps 可以判断出某个文件是否为PS文件: 所以FFmpeg是怎样判断出某个文件是否为PS文件呢?它内部其实是通过mpegps_probe函数来判断的。从《FFmpeg源码:av_probe_input_format3函数和AVI…

框架模块说明 #09 日志模块_01

背景 日志模块是系统的重要组成部分,主要负责记录系统运行状态和定位错误问题的功能。通常,日志分为系统日志、操作日志和安全日志三类。虽然分布式数据平台是当前微服务架构中的重要部分,但本文的重点并不在此,而是聚焦于自定义…

【数据仓库】hadoop3.3.6 安装配置

文章目录 概述下载解压安装伪分布式模式配置hdfs配置hadoop-env.shssh免密登录模式设置初始化HDFS启动hdfs配置yarn启动yarn 概述 该文档是基于hadoop3.2.2版本升级到hadoop3.3.6版本,所以有些配置,是可以不用做的,下面仅记录新增操作&#…

算法题(25):只出现一次的数字(三)

审题: 该题中有两个元素只出现一次并且其他元素都出现两次,需要返回这两个只出现一次的数,并且不要求返回顺序 思路: 由于对空间复杂度有要求,我们这里不考虑哈希表。我们采用位运算的方法解题 方法:位运算 首先&#…

将机器学习预测模型融入AI agent的尝试(一)

将机器学习临床预测模型融入AI agent的尝试(一) 我主要是使用机器学习制作临床预测模型和相关的应用,最近考虑的事情是自己之前的的工作能不能和AI agent进行融合,将AI 对自然语言理解能力和预测模型的预测能力结合在一起&#x…

51单片机——按键实验

由于机械点的弹性作用,按键开关在闭合时不会马上稳定的接通,在断开时也不会一下子断开,因而在闭合和断开的瞬间均伴随着一连串的抖动。抖动时间的长短由按键的机械特性决定的,一般为 5ms 到 10ms,为了确保 CPU 对按键的…

电子邮件对网络安全的需求

( 1)机密性:传输过程中不被第三方阅读到邮件内容,只有真正的接收方才可以阅读邮件。( 1.5 分) ( 2)完整性:支持在邮件传输过程中不被篡改,若发生篡改&#…

vue路由模式面试题

vue路由模式 1.路由的模式有哪些?有什么区别? history和hash模式 区别: 1.表现的形态不同: 在地址栏url中:hash模式中带有**#**号,history没有 2.请求错误时表现不同: 在hash模式中,对于404地址请求时,不会进行请求 但是在history模式中,对于404请求时,仍然会进行请求…

电子应用设计方案86:智能 AI背景墙系统设计

智能 AI 背景墙系统设计 一、引言 智能 AI 背景墙系统旨在为用户创造一个动态、个性化且具有交互性的空间装饰体验,通过融合先进的技术和创意设计,提升室内环境的美观度和功能性。 二、系统概述 1. 系统目标 - 提供多种主题和风格的背景墙显示效果&…

Python爬虫 - 豆瓣图书数据爬取、处理与存储

文章目录 前言一、使用版本二、需求分析1. 分析要爬取的内容1.1 分析要爬取的单个图书信息1.2 爬取步骤1.2.1 爬取豆瓣图书标签分类页面1.2.2 爬取分类页面1.2.3 爬取单个图书页面 1.3 内容所在的标签定位 2. 数据用途2.1 基础分析2.2 高级分析 3. 应对反爬机制的策略3.1 使用 …

西安电子科技大学初/复试笔试、面试、机试成绩占比

西安电子科技大学初/复试笔试、面试、机试成绩占比 01通信工程学院 02电子工程学院 03计算机科学与技术学院 04机电工程学院 06经济与管理学院 07数学与统计学院 08人文学院 09外国语学院 12生命科学与技术学院 13空间科学与技术学院 14先进材料与纳米科技学院 15网络与信息安…

多模态论文笔记——CogVLM和CogVLM2(副)

大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍多模态模型的LoRA版本——CogVLM和CogVLM2。在SD 3中使用其作为captioner基准模型的原因和优势。 文章目录 CogVLM论文背景VLMs 的任务与挑战现有方法及…

智慧工地信息管理与智能预警平台

建设背景与政策导向 智慧工地信息管理与智能预警平台的出现,源于工地管理面临的诸多挑战,如施工地点分散、危险区域多、监控手段落后等。随着政府对建筑产业现代化的积极推动,各地纷纷出台政策支持智慧工地的发展,旨在通过信息技…

【从零开始入门unity游戏开发之——C#篇42】C#补充知识——随机数(Random)、多种方法实现string字符串拼接、语句的简写

文章目录 一、随机数1、Random.Next()生成随机整数示例:生成一个随机整数生成指定范围内的随机整数 2、Random.NextSingle生成随机浮点数示例:生成随机浮点数 3、 生成随机字母或字符示例:生成随机字母示例:生成随机小写字母 二、…

「Mac畅玩鸿蒙与硬件54」UI互动应用篇31 - 滑动解锁屏幕功能

本篇教程将实现滑动解锁屏幕功能,通过 Slider 组件实现滑动操作,学习事件监听、状态更新和交互逻辑的实现方法。 关键词 滑动解锁UI交互状态管理动态更新事件监听 一、功能说明 滑动解锁屏幕功能包含以下功能: 滑动解锁区域:用…

VScode SSH 错误:Got bad result from install script 解決

之前vscode好好的,某天突然连接报错如下 尝试1. 服务器没有断开,ssh可以正常连接 2. 用管理员权限运行vscode,无效 3. 删除服务器上的~/.vscode-server 文件夹,无效 试过很多后,原来很可能是前一天anaconda卸载导致注册表项 步…

[论文笔记]Representation Learning with Contrastive Predictive Coding

引言 今天带来论文 Representation Learning with Contrastive Predictive Coding的笔记。 提出了一种通用的无监督学习方法从高维数据中提取有用表示,称为对比预测编码(Contrastive Predictive Coding,CPC)。使用了一种概率对比损失, 通过使用负采样使…

【C#深度学习之路】如何使用C#实现Yolo5/8/11全尺寸模型的训练和推理

【C#深度学习之路】如何使用C#实现Yolo5/8/11全尺寸模型的训练和推理 项目背景项目实现调用方法项目展望写在最后项目下载链接 本文为原创文章,若需要转载,请注明出处。 原文地址:https://blog.csdn.net/qq_30270773/article/details/1449186…

如何很快将文件转换成另外一种编码格式?编码?按指定编码格式编译?如何检测文件编码格式?Java .class文件编码和JVM运行期内存编码?

如何很快将文件转换成另外一种编码格式? 利用VS Code右下角的"选择编码"功能,选择"通过编码保存"可以很方便将文件转换成另外一种编码格式。尤其,在测试w/ BOM或w/o BOM, 或者ANSI编码和UTF编码转换,特别方便。VS文件另…