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

Ansible:强大的自动部署工具

文章目录

  • 零、Ansible介绍
  • 一、安装 ansible
  • 二、配置SSH密钥
    • 1.检查密钥是否存在
    • 2.两边的机器要互相有对方的密钥
  • 三、自动部署
    • 1.传输文件
      • (1)inventory.ini
      • (2)sync_blt.yml
      • (3)执行命令
    • 2.安装软件
      • (1)inventory.ini
      • (2)install_efvs.yml
      • (3)执行命令

零、Ansible介绍

Ansible 是一个开源、易于使用的功能强大的 IT 自动化工具,通过 SSH 在客户端节点上执行任务。
它是用 Python 构建的,这是当今世界上最流行、最强大的编程语言之一。两端都需要使用 Python 才能执行所有模块。

它可以配置系统、部署软件和安排高级 IT 任务,例如连续部署或零停机滚动更新。你可以通过 Ansible 轻松执行任何类型的自动化任务,包括简单和复杂的任务。



一、安装 ansible

sudo apt update
sudo apt install ansible

在该控制机器上,创建专门的目录来管理Ansible项目:

mkdir -p ~/ansible/sync_blt
cd ~/ansible/sync_blt

然后把两个文件放在这个目录下:

~/ansible/sync_blt/
├── inventory.ini
└── sync_blt.yml

①inventory.ini:用来存放主机和目标机器的IP
②yml:用来存放要自动执行的task

在这里插入图片描述
在这里插入图片描述

下文会具体举例



二、配置SSH密钥

1.检查密钥是否存在

ls -l ~/.ssh/id_rsa.pub

若不存在,则生成一个

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa

2.两边的机器要互相有对方的密钥

src传密钥给des:

ssh-copy-id root@10.42.129.11

des传密钥给src:

ssh-copy-id root@10.42.128.25



三、自动部署

1.传输文件

(1)inventory.ini

定义主机组和连接参数

[source]
source ansible_host=10.42.128.25 ansible_user=root[dest]
dest01 ansible_host=10.42.129.11 ansible_user=root
dest02 ansible_host=10.42.129.12 ansible_user=root

(2)sync_blt.yml

Playbook 文件,用来执行你的同步任务

传压缩包并解压:

- name: 从source同步压缩包到 desthosts: destbecome: yestasks:- name: 确保压缩包存在stat:path: /root/BLT_BurnIn/blt_i30-1.0.2-x86_64-linux-dbg-1e06f45522.tar.gzregister: file_stat- name: 将压缩包copy到目标主机copy:src: /root/BLT_BurnIn/blt_i30-1.0.2-x86_64-linux-dbg-1e06f45522.tar.gzdest: /root/BLT_BurnIn/- name: 解压tar包unarchive:src: /root/BLT_BurnIn/blt_i30-1.0.2-x86_64-linux-dbg-1e06f45522.tar.gzdest: /root/BLT_BurnIn/remote_src: yes  # 表示源文件已经在目标机器上,直接解压creates: /root/BLT_BurnIn/blt_i30-1.0.2-x86_64-linux-dbg-1e06f45522

(3)执行命令

在/root/ansible/sync_blt目录下执行

ansible-playbook -i inventory.ini sync_burnin.yml

2.安装软件

(1)inventory.ini

[source]
source ansible_host=10.42.128.25 ansible_user=root[dest]
dest01 ansible_host=10.42.128.44 ansible_user=root

(2)install_efvs.yml

- name: 在目标主机上创建目录,下载并安装软件hosts: destbecome: yes  # 使用 sudo 权限tasks:- name: 创建目录 /root/BLT_BurnIn/tool_install_packagefile:path: /root/BLT_BurnIn/tool_install_packagestate: directorymode: '0755'- name: 下载软件包 efvs-1.0.29-x86_64-linux-dbg.debget_url:url: http://xnas.riverbegin.com/Enrigin/release/validation_tool2/2025-07-10_15f836cf57/efvs-1.0.29-x86_64-linux-dbg.debdest: /root/BLT_BurnIn/tool_install_package/efvs-1.0.29-x86_64-linux-dbg.deb- name: 安装下载的 .deb 软件包command:cmd: dpkg -i /root/BLT_BurnIn/tool_install_package/efvs-1.0.29-x86_64-linux-dbg.deb

(3)执行命令

在/root/ansible/tool_install目录下执行

ansible-playbook -i inventory.ini install_efvs.yml
http://www.lryc.cn/news/584676.html

相关文章:

  • 国内如何考取Oracle大师
  • 解决问题的“测地线”:关于第一性原理与其他系统思考框架
  • HTTP 错误 500.19 - 打开 IIS 网页时出现内部服务器错误
  • 学习软件测试的第十四天(移动端)
  • 数据库操作核心知识点整理
  • 网安系列【15】之Docker未授权访问漏洞
  • 需求不稳定对项目进度影响大,如何进行变更控制
  • 显卡GPU的架构和工作原理
  • Rail开发日志_2
  • EasyCVR视频汇聚平台国标接入设备TCP主动播放失败排查指南
  • 【2025/07/10】GitHub 今日热门项目
  • 学习笔记(32):matplotlib绘制简单图表-数据分布图
  • STM32中DMA(直接存储器访问)详解
  • linux系统---ISCSI存储服务
  • python基础25_某大网校(下)处理json数据以及保存题库
  • 遥感影像图像分割-地物提取模型训练与大图直接推理流程
  • AI翻唱——So-VITS-SVC
  • ARM环境上 openEuler扩展根盘并扩展到根分区中
  • MySQL数据库调优
  • C++ 中最短路算法的详细介绍(加强版)
  • 【养老机器人】核心技术
  • 深入拆解Spring核心思想之一:IoC
  • vue3中ref和reactive的使用、优化
  • 入门级别的Transformer模型介绍
  • Linux 内核日志中常见错误
  • 学习JNI 二
  • 机器学习1
  • Java线程池原理概述
  • Spring Boot:将应用部署到Kubernetes的完整指南
  • 什么?不知道 MyBatisPlus 多数据源(动态数据源)干什么的,怎么使用,看这篇文章就够了。