Ansible初识

news/2024/9/18 14:44:50/ 标签: ansible, 运维

ansible_0">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_17">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__51">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中使用。

ansibleping_140">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.ppmy.cn/news/1515930.html

相关文章

测试用例的设计

*涉及概念来源于《软件测试的艺术》 目录 一、为什么要设计测试用例&#xff1f; 二、黑盒测试与白盒测试介绍 三、测试用例常见设计方法 1.黑盒测试(功能测试) 2.白盒测试(结构测试) 四、测试策略 五、测试用例怎么写 一、为什么要设计测试用例&#xff1f; 由于时间…

一本读懂数据库发展史的书

数据库及其存储技术&#xff0c;一直以来都是基础软件的主力。数据库系统的操作接口标准&#xff0c;也是应用型软件的重要接口&#xff0c;关系重大。 作为最“有感”的系统软件&#xff0c;数据库的历史悠久、品类繁多、创新活跃。 对数据库历史发展的介绍&#xff0c;有利…

前端知识点

1.常见文本标签 2.属性 3.区块 4.表单 如果那个性别只能是单选的话要加上name属性 css 相邻选择器就是跟在被选中的里面的所有 js基本语法 js函数&#xff1a;就跟C语言差不多啊 改文本 引入js

【C#】【EXCEL】Bumblebee/Classes/ExColumn.cs

文章目录 Bumblebee/Classes/ExColumn.csFlow diagramDescriptionCode Bumblebee/Classes/ExColumn.cs Flow diagram #mermaid-svg-6WUm4r0wDJG9uelI {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-6WUm4r0wDJG9ue…

[Algorithm][综合训练][对称之美][经此一役小红所向无敌][连续子数组最大和]详细讲解

目录 1.对称之美1.题目链接2.算法原理详解 && 代码实现 2.经此一役小红所向无敌1.题目链接2.算法原理详解 && 代码实现 3.连续子数组最大和1.题目链接2.算法原理详解 && 代码实现 1.对称之美 1.题目链接 对称之美 2.算法原理详解 && 代码实现…

C# 循环访问目录树详解与示例

文章目录 一、目录树遍历的概念二、使用System.IO命名空间三、DirectoryInfo和FileInfo类四、递归遍历目录树五、示例&#xff1a;列出目录树中的所有文件和文件夹六、异常处理七、迭代方法八、总结 在C#中&#xff0c;访问文件系统是常见的需求之一。有时我们需要遍历目录树以…

使用SQLite进行Python简单数据存储的线程安全解决方案

在 Python 中使用 SQLite 进行简单数据存储时&#xff0c;线程安全是一个需要注意的问题。SQLite 本身是线程安全的&#xff0c;但在多线程环境下&#xff0c;可能仍然需要做一些额外的工作来确保数据访问的安全性。 1、问题背景 一位开发者正在编写一个简单的聊天服务器和客户…

leetcode 数组+哈希+双指针+子串+滑动窗口

——————双指针 283. 移动零 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] …

sheng的学习笔记-AI-半监督学习

AI目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 基础知识 什么是半监督学习 我们在丰收季节来到瓜田&#xff0c;满地都是西瓜&#xff0c;瓜农抱来三四个瓜说这都是好瓜&#xff0c;然后再指着地里的五六个瓜说这些还不好&#xff0c;还需再生长若干天。基于这些信息&a…

数学基础 -- 微积分之线性化

微积分中的线性化 在线性代数和微积分中&#xff0c;线性化是指使用一个线性函数来近似描述非线性函数在某一点附近的行为。在微积分中&#xff0c;线性化通常是通过泰勒展开将一个非线性函数线性化的过程。 线性化公式 给定一个函数 f ( x ) f(x) f(x)&#xff0c;我们可以…

微信小程序开发经验记录

1、把微信开发者工具安装好后&#xff0c;创建小程序。 AppID可以注册下&#xff0c;后续小程序上线会用到&#xff0c;前期可以使用测试号先开发程序&#xff0c;后续修改AppID即可。 模板选择基础模板就行。 2、开发页面如下。 左上角可以控制几个窗口的打开和关闭。模拟器窗…

arm64--内嵌汇编

内嵌汇编代码基本用法 1.作用&#xff1a;对于特定重要和时间敏感的代码进行优化&#xff0c;同时在C语言中访问某些特殊指令&#xff08;例如内存屏障指令&#xff09;来实现特殊功能 2.内嵌汇编代码主要有两种形式 基础内嵌汇编代码&#xff1a;不带任何参数 扩展内嵌汇…

【Datawhale AI夏令营第四期】 浪潮源大模型应用开发方向笔记 Task05 源大模型微调实战代码精读 RAG测试 AI简历助手代码优化 网课剩余部分

【Datawhale AI夏令营第四期】 浪潮源大模型应用开发方向笔记 Task05 源大模型微调实战代码精读 RAG测试 AI简历助手代码优化 网课剩余部分 教程基础背景知识&#xff1a; 微调能解决的问题正好是我需要的——模型在某个特定方面上能力不够。我感觉这种情况适用于让模型去完成…

数据仓库系列 5:什么是事实表和维度表,它们有什么作用?

目录 1. 引言&#xff1a;事实表与维度表的魔力2. 事实表&#xff1a;业务活动的数字足迹2.1 什么是事实表?2.2 事实表的特征2.3 事实表的类型2.4 事实表示例2.5 事实表的作用2.6 事实表的设计原则2.7 事实表的查询示例 3. 维度表&#xff1a;为数据赋予意义3.1 什么是维度表?…

vscode附着调试

我有一个程序&#xff0c;是别的程序调用启动的&#xff0c;所以需要等它的进程启动后&#xff0c;再附着上去调试。 编写Launch.json: {"version": "0.2.0","configurations": [{"name": "(gdb) Launch","type"…

day 39 代码随想录 | 打家劫舍 动态规划

198.打家劫舍 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。 给定一个代表每个…

暑期算法训练

目录 A.糖果&#xff08;Candy) B.小红的数组重排 C.牛牛与LCM D.子串 E.勤奋的杨老师 F.清楚姐姐跳格子 G.方块 I H.PUBG A.糖果&#xff08;Candy) 思路 &#xff1a;贪心&#xff0c;为了使操作数最少&#xff0c;我们要尽可能的先吃第二个盒子里的糖果&#x…

C#与其它编程语言有什么区别,以及相关优势有哪些

C#编程语言的主要特性包括**面向对象、统一的类型系统、自动内存管理等**。与其它编程语言相比&#xff0c;C#的优势体现在**跨平台开发支持、强大的语言集成查询&#xff08;LINQ&#xff09;功能、高效的性能**这几个方面。 C#的主要特性&#xff1a; 1. 面向对象&#xff…

python:reportlab 生成PDF文件,生成基因图谱

reportLab是 python的一个第三方库&#xff0c;它能够用来生成PDF文件。这个库提供了一系列的工具&#xff0c;允许用户从简单的文档到复杂的多列布局进行PDF的创建和编辑。 使用 reportLab&#xff0c;你可以执行以下功能&#xff1a; 创建文本块、图片、图表等元素。 利用绘…

Django后台管理Xadmin使用DjangoUeditor富文本编辑器

Django后台管理Xadmin使用DjangoUeditor富文本编辑器 一、下载 点击github下载 https://github.com/twz915/DjangoUeditor3 1、下载完后解压到跟xadmin同一层级目录: 2、解压后名称可能为DjangoUeditor3-master,需要改为DjangoUeditor 3、进入DjangoUeditor目录,把Djan…