Ansible初识

ansible初识

Ansible是一种自动化工具,用于配置管理、应用程序部署和任务自动化。它基于Python语言开发,使用SSH协议进行通信,并且不需要在被管理的主机上安装任何客户端。Ansible使用简单的YAML语言来描述任务和配置,使得操作简单、易于理解。

Ansible的主要特点包括:

  1. 简单易用:Ansible使用YAML语言来定义任务和配置,具有简单、直观的语法,使得操作起来非常容易。同时,Ansible提供了丰富的模块和插件,可以方便地完成各种任务。

  2. 基于SSH协议:Ansible使用SSH协议进行通信,不需要在被管理的主机上安装任何客户端。这意味着可以更好地保护系统安全,同时也降低了管理工作的复杂度。

  3. 基于代理:Ansible可以通过代理服务器来管理无法直接访问的主机,如跳板机、防火墙后的主机等。这样可以实现对整个网络的统一管理,提高了灵活性和可扩展性。

  4. 基于模块化:Ansible提供了丰富的模块和插件,可以用于完成各种任务,如安装软件、配置系统、部署应用程序等。同时,Ansible允许用户编写自定义模块和插件,满足特定需求。

  5. 可扩展性:Ansible支持多主机和多组主机管理,可以轻松应对大规模环境。同时,Ansible还支持分布式部署和高可用性配置,提供了高效的管理解决方案。

总之,Ansible是一种功能强大、易于使用的自动化工具,适用于各种场景,可以简化管理工作,提高效率。无论是小规模还是大规模环境,Ansible都可以帮助您轻松管理和部署系统。

ansible命令

以下是一些常见的ansible命令:

  1. ansible <host-pattern> -m <module>:运行ansible模块在指定的主机上。

  2. ansible-playbook <playbook.yml>:运行ansible playbook。

  3. ansible <host-pattern> --list-hosts:列出匹配主机模式的主机。

  4. ansible <host-pattern> --inventory-file=<inventory-file>:指定使用的清单文件。

  5. ansible <host-pattern> -a <command>:在远程主机上运行命令。

  6. ansible <host-pattern> -e <extra-vars>:传递额外的变量给playbook或命令。

  7. ansible <host-pattern> --limit=<limit>:限制适用的主机数量。

  8. ansible <host-pattern> --tags=<tags>:只运行指定的标签。

  9. ansible <host-pattern> --skip-tags=<tags>:跳过指定的标签。

  10. ansible <host-pattern> --start-at-task=<task-name>:从指定的任务开始运行。

  11. ansible <host-pattern> --check:进行干运行,检查可能对主机造成的变化。

  12. ansible <host-pattern> --diff:在执行任务之前显示文件的差异。

  13. ansible <host-pattern> --become:使用sudo或类似特权升级。

  14. ansible <host-pattern> --become-user=<user>:以指定的用户身份运行命令。

  15. ansible-doc <module>:查看模块的文档。

ansible 模块

Ansible是一个自动化的IT操作工具,它可以通过使用模块来实现各种不同的任务。以下是一些常用的Ansible模块:

  1. command模块:用于在远程主机上执行命令。
  2. copy模块:用于在远程主机上复制文件和目录。
  3. file模块:用于在远程主机上管理文件和目录的属性。
  4. template模块:用于在远程主机上使用模板生成文件。
  5. apt/yum模块:用于在远程主机上执行软件包管理器(APT或Yum)的操作。
  6. service模块:用于在远程主机上管理系统服务的状态。
  7. user模块:用于在远程主机上管理用户和用户组。
  8. shell模块:用于在远程主机上执行Shell脚本。
  9. git模块:用于在远程主机上执行Git操作。
  10. docker_compose模块:用于在远程主机上管理Docker容器的状态和操作。

以上只是一些常见的Ansible模块,Ansible还提供了许多其他模块来满足不同的需求。您可以通过查看Ansible的官方文档来了解更多关于模块的信息。Ansible是一个自动化的IT操作工具,它可以通过使用模块来实现各种不同的任务。以下是一些常用的Ansible模块:

  1. command模块:用于在远程主机上执行命令。
  2. copy模块:用于在远程主机上复制文件和目录。
  3. file模块:用于在远程主机上管理文件和目录的属性。
  4. template模块:用于在远程主机上使用模板生成文件。
  5. apt/yum模块:用于在远程主机上执行软件包管理器(APT或Yum)的操作。
  6. service模块:用于在远程主机上管理系统服务的状态。
  7. user模块:用于在远程主机上管理用户和用户组。
  8. shell模块:用于在远程主机上执行Shell脚本。
  9. git模块:用于在远程主机上执行Git操作。
  10. docker_compose模块:用于在远程主机上管理Docker容器的状态和操作。

Ansible的synchronize模块

Ansible的synchronize模块是用于在远程主机之间进行数据同步的模块。它使用rsync算法来高效地复制文件和目录。

synchronize模块的使用方法如下:

- name: Synchronize filessynchronize:src: /path/to/sourcedest: /path/to/destinationmode: push  # 可选。默认为`push`。指定同步方向为推送(push)或拉取(pull)。delete: yes  # 可选。默认为`no`。指定是否删除目标目录中不存在于源目录中的文件。recursive: yes  # 可选。默认为`yes`。指定是否递归复制目录。archive: yes  # 可选。默认为`yes`。指定是否启用归档模式(copy所有文件属性)。compress: yes  # 可选。默认为`no`。指定是否启用压缩。

详细解释如下:

  • src: 源文件或目录的路径。
  • dest: 目标文件或目录的路径。
  • mode: 同步方向。可选值为push(推送)或pull(拉取)。默认为push,即将源文件复制到目标主机。
  • delete: 指定是否删除目标目录中不存在于源目录中的文件。可选值为yesno。默认为no,即不删除。
  • recursive: 指定是否递归复制目录。可选值为yesno。默认为yes,即递归复制。
  • archive: 指定是否启用归档模式,即复制文件时保留所有文件属性。可选值为yesno。默认为yes,即启用。
  • compress: 指定是否启用压缩。可选值为yesno。默认为no,即不启用。

使用synchronize模块进行文件同步的示例:

- name: Synchronize filessynchronize:src: /path/to/sourcedest: /path/to/destinationmode: pushdelete: yesrecursive: yesarchive: yescompress: yes

上面的任务将源目录/path/to/source中的文件,同步到目标主机的/path/to/destination目录中,同时删除目标目录中不存在于源目录中的文件。复制过程中会保留所有文件属性,并启用压缩以提高传输效率。

“fetch”模块从目标主机上获取文件

在Ansible中,可以使用“fetch”模块从目标主机上获取文件。fetch模块将目标主机上的文件复制到控制主机上。

以下是fetch模块的用法示例:

- name: Fetch a file from remote hostshosts: your_hoststasks:- name: Fetch a filefetch:src: /path/to/remote/filedest: /path/to/local/directory

在上面的示例中,我们指定了要从远程主机获取的文件的路径src,以及要将文件复制到的本地目录dest

请注意,fetch模块在每个目标主机上执行,因此它必须在一个包含目标主机的playbook中使用。

1、4台虚拟机,1台作为主控端,3台被控端,虚拟机1使用ansible对被控端服务器进行ping测试

192.168.99.130

yum install ansible

编辑/etc/hosts

192.168.99.132 h1
192.168.99.144 h2
192.168.99.118 h3

/etc/ansible/hosts 添加

h1
h2
h3
ssh-keygen -t rsa
ssh-copy-id root@192.168.99.132
ssh-copy-id root@192.168.99.144
ssh-copy-id root@192.168.99.118
ansible h1,h2,h3 -m ping  

在这里插入图片描述

2、将2、3分为一组A,4单独分为一组B进行ping测试

[A]
h1
h2
[B]
h3
ansible A,B -m ping   

在这里插入图片描述

3、有一个大组包含了组A和B的所有主机,进行ping测试

[A]
h1
h2
[B]
h3
[gr1:children]
A
B
ansible gr1 -m ping  

4、在234三台机的tmp目录下创建一个文件

ansible gr1 -m command -a 'touch /tmp/test'  

在这里插入图片描述

5、修改所有主机的yum源为aliyun源

ansible gr1 -m yum_repository -a 'name=base baseurl=http://mirrors.aliyun.com/centos/7/os/x86_64/ description=ali_repo gpgcheck=no enabled=yes state=present'
ansible gr1 -m yum_repository -a 'name=epel baseurl=https://mirrors.aliyun.com/epel/7/x86_64/ enabled=yes gpgcheck=no gpgcakey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-7 description=epel_repo state=present file=AlicloudEpel'

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

6、远程安装httpd、nginx、ntpdate

ansible  gr1 -m yum -a 'name=httpd,nginx,ntpdate'

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3的三种样式控制及实现原理

你好&#xff0c;我是沐爸&#xff0c;欢迎点赞、收藏和关注。个人知乎 Vue3中一共有三种样式控制&#xff0c;分别是全局样式控制、局部作用域样式控制和深度样式控制&#xff0c;今天我们一起看下这三种样式控制的使用&#xff0c;以及实现的原理是什么。 一、全局样式控制…

NRK3301语音识别芯片在汽车内饰氛围灯上的应用方案解析

随着智能汽车的快速发展&#xff0c;车载语音交互技术逐渐成为提升驾驶体验的关键技术之一。传统的汽车内饰氛围灯语音识别系统往往依赖于手动操作&#xff0c;不仅操作繁琐&#xff0c;而且在驾驶过程中容易分散驾驶员的注意力。因此&#xff0c;开发一种高效、便捷的汽车内饰…

SpringBoot集成Redis

目录 12.1 配置文件12.2 防火墙12.3 Jedis(一般不用了&#xff0c;了解即可)1.介绍2.步骤3.写YML4.主启动5.业务类 12.4 Lettuce1.介绍以及和Jedis的区别2.步骤1.改pom2.业务类 12.5 Redis Template(推荐)1.连接单机1.改pom2.写YML3.业务类3.1配置类3.2 service3.3 controller测…

Stable Diffusion的微调方法原理总结

在深度学习领域&#xff0c;Stable Diffusion作为一种强大的生成模型&#xff0c;正逐渐成为图像和视频生成领域的热门话题。它不仅能够模拟复杂的自然和人工系统中的随机演化行为&#xff0c;还通过一系列微调方法&#xff0c;显著提升了模型在特定任务上的性能。本文旨在深入…

开放式耳机别人能听到吗?开放式的防漏音效果到底好不好?

开放式耳机的设计是允许一部分声音泄露出来&#xff0c;所以当您使用开放式耳机听音乐或通话时&#xff0c;周围的人可能会有所察觉。具体别人能听到多少&#xff0c;取决于几个因素&#xff1a; 音量大小&#xff1a;如果音量设置得比较高&#xff0c;那么周围的人更容易听到…

多线程面试常问

一、创建线程的几种方式 1、继承Thread类并重写run()方法。 public class MyThread extends Thread {Overridepublic void run() {System.out.println("通过集成 Thread 类实现线程"); } } // 如何使用 new MyThread().start() 2、实现Runnable接口并重写run()方法…

Linux文件系统及常见快捷键

Linux文件系统及常用快捷键 (只是对linux简单的介绍,新手常用的快捷键) 1、Linux文件系统结构 windows文件系统 Windows操作系统将硬盘进行分区&#xff0c;然后用 A 、 B 、 C 、 D 、等符号标识。存取文件时一定要清楚存放在哪个磁盘的哪个目录下。 Linux 文件系统结构 …

基于FPGA的SD NAND Flash数据读写实现

1、存储芯片分类 目前市面上的存储芯片&#xff0c;大致可以将其分为3大类&#xff1a; ① EEPROM EEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器&#xff0c;是一种掉电后数据不丢失的存储芯片。EEPROM 可以在电脑上或专用设备…

腾讯云授权子用户账号域名备案

官网文档没说清楚 2.在购买了服务器的账号生成授权码 2.填写子账号id 3.子账号即可弹出备案按钮了

Wemos D1 Mini pro/ nodeMcu / ESP8266 驱动 240*320 ILI9341 SPI液晶屏

Wemos D1 Mini / nodeMcu / ESP8266 驱动 240*320 ILI9341 SPI液晶屏 效果展示器件硬件连接引脚连接原理图引脚对照表 安装TFT_eSPI库TFT_eSPI库中User_Setup.h文件的参数修改User_Setup.h文件的位置User_Setup.h文件中需要修改的参数User_Setup.h完成源码 例程 缘起&#xff1…

【3天速成Python基础语法(3)】

文章目录 1 :peach:库的基本认识:peach:2 :peach:标准库:peach:3 :peach:第三方库:peach: 1 &#x1f351;库的基本认识&#x1f351; 库 就是是别人已经写好了的代码, 可以让我们直接拿来用。一个编程语言能不能流行起来, 一方面取决于语法是否简单方便容易学习, 一方面取决于…

安捷伦色谱仪器LabVIEW软件替换与禁运配件开发

可行性分析及实现路径 可行性&#xff1a; 软件替换&#xff1a; 驱动程序支持&#xff1a; 要实现LabVIEW对安捷伦色谱仪器的控制&#xff0c;需要检查安捷伦是否提供LabVIEW驱动程序。如果没有现成的驱动&#xff0c;则可能需要开发自定义的驱动程序&#xff0c;通过LabVIEW…

JavaWeb基础 -- Servlet

JavaWeb基础 – Servlet 1.Servlet简介 1.1 Servlet是什么 Servlet本身是用Java编写的&#xff0c;运行在Web服务器上的应用程序&#xff0c;并作为Web浏览器和其他HTTP客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。Servlet可以收集来自网页表单输入的数据…

InstantID: Zero-shot Identity-Preserving Generation in Seconds

https://arxiv.org/pdf/2401.07519#page9.73https://github.com/instantX-research/InstantID?tabreadme-ov-filehttps://github.com/instantX-research/InstantID/pull/89/files 问题引入 目标是生成和reference图片相符合的图片&#xff0c;特别是人脸&#xff1b;现在基于…

汽车耐老化太阳跟踪聚光户外加速老化试验

汽车耐老化太阳跟踪聚光户外加速老化试验方法是一种模拟太阳光照、热和潮湿环境条件下&#xff0c;测试汽车外饰材料耐老化性能的试验方法。此方法主要用于评估材料在遭受日光、热和潮湿影响下的相对耐老化性&#xff0c;以确定其在实际使用过程中的耐久性。 1. 范围 本标准适…

计算机类-本科毕业设计快速通关攻略-(选题-创新点-论文框架-论文绘图)

一、推荐选题 大多数人都没有什么基础&#xff0c;不推荐做系统类的&#xff0c;建议走深度学习方向&#xff0c;简单易上手&#xff0c;下面将给出几个我认为不错的方向。 1、目标检测类 目标检测是每年深度学习毕业设计的主流&#xff0c;如Faster R-CNN、YOLO、SSD等算法…

Linux网络配置和系统管理

Linux网络配置和系统管理 1.查看网络IP和网关windows系统主机 IP虚拟机 IP虚拟机网关网络检测命令 ping网络连接模式 2.配置静态IP地址(NAT网络连接模式)前提说明配置主机的VMware Network Adapter VMnet8 网卡静态IP地址注意点虚拟机配置静态ip修改后ping命令测试修改虚拟机静…

使用Rclone从Google Drive 下载大文件

前言 使用浏览器、或FDM、wget、curl等下载工具&#xff0c;从 Google Drive 下载大文件时经常会遇到中断或下载失败的情况&#xff0c;这一般是由于网络不稳定、Google Drive 的限制、或文件太大导致。 虽然使用 gdown 能一定程度避免上述问题&#xff0c;但对于非常大的文件…

在国产芯片上实现YOLOv5/v8图像AI识别-【2.5】yolov8使用C++部署在RK3588更多内容见视频

本专栏主要是提供一种国产化图像识别的解决方案&#xff0c;专栏中实现了YOLOv5/v8在国产化芯片上的使用部署&#xff0c;并可以实现网页端实时查看。根据自己的具体需求可以直接产品化部署使用。 B站配套视频&#xff1a;https://www.bilibili.com/video/BV1or421T74f 背景…

编写 prometheus exporter监控 mysql group replication

用 prometheus 监控 mysql&#xff0c;之前用 mysqld_exporter 收集mysql 的监控指标&#xff0c;发现并没有 mysql 组复制状态的指标。只能自己收集了&#xff0c;编写脚本收集指标推送到 pushgateway&#xff0c;这个办法更简单但是扩缩容不是很方便。下面用 python 编写的一…