当前位置: 首页 > 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.dtcms.com/a/272513.html

相关文章:

  • SPGAN: Siamese projection Generative Adversarial Networks
  • 开源 Canvas 和 WebGL 图形库推荐与对比
  • OpenCV 4.10.0 移植 - Android
  • 跨境电商税务解决之道:在合规航道上驶向全球市场
  • Elasticsearch 简介
  • 集成CommitLInt+ESLint+Prettier+StyleLint+LintStaged
  • 节日庆典儿童节婚庆运动会劳动节PPT模版
  • Android Studio 打 release 包 Algorithm HmacPBESHA256 not available 问题解决
  • 【arXiv 2025】新颖方法:基于快速傅里叶变换的高效自注意力,即插即用!
  • 多样化消费摄像头监控功能
  • pdf_copy.ahk
  • 用 LangChain4j 从零实现 RAG:基于 PDF 文档的智能问答系统
  • 《信号与系统》学习笔记——第八章(补充部分)
  • 缺乏日常项目进度例会机制,如何系统推进
  • 基于大模型的膀胱癌全周期精准诊疗方案研究
  • GitHub敏感信息收集与防御指南
  • 【音视频】TS协议解析
  • 音频 SDP 文件格式
  • 基于多模态感知的裂缝2D及3D检测方案
  • Boost.Asio学习(3):异步读写
  • windows对\和/敏感吗?
  • 小白成长之路-NFS文件存储及论坛项目搭建(php)
  • C++之unordered_set和unordered_map基本介绍
  • jmeter如何让一个线程组中的多个请求同时触发
  • PyTorch中torch.eq()、torch.argmax()函数的详解和代码示例
  • 多线程交替打印ABC
  • Windows安装DevEco Studio
  • 解决问题:在cmd中能查看到pnpm版本,在vscode终端中却报错
  • [5种方法] 如何将iPhone短信保存到电脑
  • 搜索算法在前端的实践