ansible基础用法

一、环境介绍

操作系统主机IP角色主机名
centos7.5192.168.1.18ansible-servernode2
centos7.5192.168.1.19ansible-clientnode3

二、安装epel yum源

1.下载epel yum源

yum -y install epel-release
[root@node2 ~]# yum list |grep ^ansible
ansible.noarch                              2.9.16-1.el7               epel     
ansible-doc.noarch                          2.9.16-1.el7               epel     
ansible-inventory-grapher.noarch            2.4.4-1.el7                epel     
ansible-lint.noarch                         3.5.1-1.el7                epel     
ansible-openstack-modules.noarch            0-20140902git79d751a.el7   epel     
ansible-python3.noarch                      2.9.16-1.el7               epel     
ansible-review.noarch                       0.13.4-1.el7               epel

2.安装ansble

[root@node2 ~]# yum -y install ansible

3.查看版本

[root@node2 ~]# rpm -qa |grep ansible
ansible-2.9.27-1.el7.noarch

4.配置密钥对通信

ansible默认用ssh方式通信,这里服务端与客户端之间使用密钥对通信

4.1.在服务端创建密钥(node2)
[root@node2 ~]# ssh-keygen  -t rsa#讲公钥传递到被管理机上
[root@node2 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.1.19
4.2.在客户端查看密钥
[root@node3 ~]# cat .ssh/authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmPE7vBP4hA249aZ0FxQdDnqRAzIbnAO7ZEfS44KNoaiFTD9GSpFGXu53rYJteJ8OKe5EHKx47SoYtgRKK3fdV5u9qujSW4cn
xCalqEd7UXCcKZgq3Qqz+XT3/tLDF5c7R20dxKrAs6V381kZ+kbFhdZyHPcuHBTV4k0UjHQ0s1zBRWGzfLMvBNmswj8mVOMw2QH95DJUrW8ukoeuPqPqEc7uXnQKkRkLArwceYuw21jFXb5Cl2gsSfKndplu7Xx9NUhk+jiofZ9A0BLGhr7jUEs5hDqpea199XrfTG1nRcTXrbIG/+malt+bKz5hFDmHHYtzPiIr3JO8TsJ1aj/xl root@node2

4.3.连接测试

连接成功,没有要求连接时输入密码。

[root@node2 ~]# ssh 192.168.1.19
Last login: Sat Jun 29 17:42:11 2024 from 192.168.1.18
[root@node3 ~]# 

四、基本配置

1.添加被管理机

1.1 语法1:

添加多个并且IP不连续的主机组

[root@node2 ansible]# cat hosts 
[web]
192.168.1.19
192.168.1.20

1.2 语法2:

添加多个并且IP连续的主机组. 这里backend主机组的范围是192.168.1.30-35

[root@node2 ansible]# cat hosts 
[backend]
192.168.1.[30:35]

2.基础语法

2.1 ansible

ansible是执行命令的主要命令

ansible 主机组 -m 指定模块 -a 参数

2.2 ansible-doc

ansible-doc是查看模块帮助的主要命令。-l列出所有模块

[root@node2 ~]# ansible-doc -l |wc -l
3387

查看某个模块说明

#查看ping模块的详细说明
[root@node2 ~]# ansible-doc ping

2.3 查看所有主机

[root@node2 ansible]# ansible all --listhosts (8):192.168.1.19192.168.1.20192.168.1.30192.168.1.31192.168.1.32192.168.1.33192.168.1.34192.168.1.35

2.4 查看某个主机组的主机

[root@node2 ansible]# ansible backend --listhosts (6):192.168.1.30192.168.1.31192.168.1.32192.168.1.33192.168.1.34192.168.1.35

3.测试通信

[root@node2 ~]# ansible web -m ping
192.168.1.107 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"
}

说明已经通信成功

五、常用模块

1.command模块

默认模块,在远程主机上执行命令,也即使说不使用-m指定模块 默认使用的就是command模块

[root@node2 ~]# ansible web -a  'ls'
192.168.1.107 | CHANGED | rc=0 >>
anaconda-ks.cfg
initial-setup-ks.cfg

command模块是有一些局限性的,有些shell命令是执行不了的

2.shell模块

shell模块比command对shell命令的支持会稍微好一些。可以讲默认模块改为shell

[root@node2 ~]# vim /etc/ansible/ansible.cfg 
module_name = shell

批量修改root登录密码

[root@node2 ~]# ansible web -a "echo "123456" |passwd --stdin root"

3.script脚本模块

功能:在远程主机上运行服务器上的脚本,运维人员无需手动将脚本复制到客户端,ansible会自动将脚本推送到客户端,执行完后会自定删除客户端的脚本。

3.1 创建测试脚本

在ansiable端编写测试脚本,内容如下

[root@node2 ~]# cat test.sh 
awk -F: '{if(NR <=10){print $1}}' /etc/passwd

3.2 执行脚本

[root@node2 ~]# ansible web -m script -a '/root/test.sh'
192.168.1.19 | CHANGED => {"changed": true, "rc": 0, "stderr": "Shared connection to 192.168.1.19 closed.\r\n", "stderr_lines": ["Shared connection to 192.168.1.19 closed."], "stdout": "root\r\nbin\r\ndaemon\r\nadm\r\nlp\r\nsync\r\nshutdown\r\nhalt\r\nmail\r\noperator\r\n", "stdout_lines": ["root", "bin", "daemon", "adm", "lp", "sync", "shutdown", "halt", "mail", "operator"]
}

4.copy模块

将服务端的文件下发到客户端

ansible web -m copy -a 'src=/root/test.sh dest=/root'

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

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

相关文章

第二证券:可转债基础知识?想玩可转债一定要搞懂的交易规则!

可转债&#xff0c;全称是“可转化公司债券”&#xff0c;是上市公司为了融资&#xff0c;向社会公众所发行的一种债券&#xff0c;具有股票和债券的双重特点&#xff0c;投资者可以选择按照发行时约定的价格将债券转化成公司一般股票&#xff0c;也可作为债券持有到期后收取本…

Load Tensor to local Nvidia GPU

0. 安装Nvidia驱动 ubuntu24.04的安装非常简单&#xff0c;在安装界面&#xff0c;选择为"图形化和其他硬件安装驱动"&#xff0c;重启后即有原版Nvidia驱动(如图Nvidia X xxx) 1.确定电脑上是否有NvidiaGPU且安装好Nvidia驱动 import torch print(torch.version…

机器学习 C++ 的opencv实现SVM图像二分类的训练 (二)【附源码】

本节讲机器学习 C 的opencv实现SVM图像二分类的训练&#xff0c;下节讲测试&#xff1a; 数据集合data内容如下&#xff1a; 下载地址为&#xff1a;https://download.csdn.net/download/hgaohr1021/89506900 #include <stdio.h> #include <time.h> #include…

【Python机器学习系列】建立决策树模型预测小麦品种(案例+源码)

这是我的第314篇原创文章。 一、引言 对于表格数据&#xff0c;一套完整的机器学习建模流程如下&#xff1a; 针对不同的数据集&#xff0c;有些步骤不适用&#xff0c;其中橘红色框为必要步骤&#xff0c;欢迎大家关注翻看我之前的一些相关文章。前面我介绍了机器学习模型的二…

SQL SERVER 设置端口

要在SQL Server中设置端口&#xff0c;可以通过SQL Server Configuration Manager来完成。以下是详细的步骤&#xff1a; 1. 打开SQL Server Configuration Manager 在Windows中&#xff0c;按 Win R 键打开运行窗口。输入 SQLServerManager<version>.msc 并按回车。例…

Java数据结构:选择合适的数据结构解决问题

Java数据结构&#xff1a;选择合适的数据结构解决问题 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 引言 在软件开发中&#xff0c;选择合适的数据结构对于…

开源模型应用落地-FastAPI-助力模型交互-WebSocket篇(六)

一、前言 使用 FastAPI 可以帮助我们更简单高效地部署 AI 交互业务。FastAPI 提供了快速构建 API 的能力,开发者可以轻松地定义模型需要的输入和输出格式,并编写好相应的业务逻辑。 FastAPI 的异步高性能架构,可以有效支持大量并发的预测请求,为用户提供流畅的交互体验。此外,F…

美术馆预约小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;展品信息管理&#xff0c;管理员管理&#xff0c;用户管理&#xff0c;美术馆管理&#xff0c;基础数据管理&#xff0c;论坛管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;美术馆&#xff…

[C/C++] -- gdb调试与coredump

1.gdb调试 GDB&#xff08;GNU 调试器&#xff09;是一个强大的工具&#xff0c;用于调试程序。 安装 1. wget http://ftp.gnu.org/gnu/gdb/gdb-8.1.tar.gz 2. tar -zxvf gdb-8.1.1.tar.gz 3. cd gdb-8.1.1 4. ./configure 5. make 6. make install 基础用法 …

掌握 LINQ:C# .NET 中的 TakeWhile 和 SkipWhile

LINQ&#xff08;语言集成查询&#xff09;是 C# 中的一项强大功能&#xff0c;它允许您以更易读、更简洁的方式对集合执行查询。在众多可用的 LINQ 方法中&#xff0c;TakeWhile 和 SkipWhile 因其能够根据谓词有条件地包含或排除序列中的元素而脱颖而出。本文将探讨如何有效地…

vue3.0(十六)axios详解以及完整封装方法

文章目录 axios简介1. promise2. axios特性3. 安装4. 请求方法5. 请求方法别名6. 浏览器支持情况7. 并发请求 Axios的config的配置信息1.浏览器控制台相关的请求信息&#xff1a;2.配置方法3.默认配置4.配置的优先级5.axios请求响应结果 Axios的拦截器1.请求拦截2.响应拦截3.移…

C++利用常量来防止形参误修改 函数被定义两次是不允许的

#include<iostream> using namespace std;void displayInfo(const int& num) {// 函数体内不能修改num的值cout << "num " << num << endl; }int main() {int myNumber 5;displayInfo(myNumber);// 传递myNumber的引用&#xff0c;但不…

回流焊常见缺陷

不润湿(Nonwetting)/润湿不良(Poor Wetting) 通常润湿不良是指焊点焊锡合金没有很好的铺展开来,从而无法得到良好的焊点并直接影响到焊点的可靠性。 产生原因: 1. 焊盘或引脚表面的镀层被氧化,氧化层的存在阻挡了焊锡与镀层之间的接触; 2. 镀层厚度不够或是加工不良,很…

常见测试测量接口的比较:PXI、PXIe、PCI、VXI、GPIB、USB

详细比较了六种常见的测试测量接口&#xff1a;PXI、PXIe、PCI、VXI、GPIB、USB。每种接口都有其独特的特点和应用场景。通过比较它们的性能、带宽、模块化程度和应用领域&#xff0c;帮助工程师选择最适合其测试需求的接口类型。 1. PXI&#xff08;PCI eXtensions for Instru…

uboot 编译时传递参数实现条件编译

KCFLAGS make ARCHarm KCFLAGS-DENV_DEBUG CROSS_COMPILEaarch64-linux-gnu-env/sf.c env_sf_save 加入调试信息 # saveenv Saving Environment to SPI Flash... env_sf_save (1) spi_flash_erase (2) spi_flash_write is40000 Erasing SPI flash...Writing to SPI flash.…

试用笔记之-Delphi xe 微信/支付宝支付源代码

首先delphi xe 微信/支付宝支付源代码下载&#xff1a; http://www.htsoft.com.cn/download/DelphiXEWeiXin_ZhiFuBao_ZhiFu.rar 解压后可以看到源代码 直接执行可执行文件&#xff1a;

大模型技术在辅助学习中的应用

大模型技术在辅助学习中的应用场景非常广泛&#xff0c;以下是一些典型示例。大模型技术在辅助学习中具有广阔的应用前景&#xff0c;可以为学生提供更加个性化、智能化和高效的学习体验。随着大模型技术的不断发展&#xff0c;我们可以期待在未来看到更多创新应用。北京木奇移…

实现返利App中的数据缓存与预加载机制

实现返利App中的数据缓存与预加载机制 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 数据缓存是指将经常访问的数据临时存储在高速存储器中&#xff0c;以提…

Spring Boot中的高并发处理

Spring Boot中的高并发处理 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;我们来探讨一下在Spring Boot中如何实现高并发处理。 一、什么是高…