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

ansible基础

ansible

1.概述

        ansible是基于python语言开发,配置管理和部署应用的工具。批量的配置,部署,管理“上千台”主机 (实际一次100台左右),ansible只要在一台主机上就可以对其他主机进行操作。

(1)功能

  • 实现远程连接主机
  • 批量配置,批量操作,ansible可以对主机进行组划分,也可以把名下所有的主机进行划分,进行批量操作
  • 远程自动化运维(脚本--->playbook)

(2)ansible的工作模式

        没有固定的客户端,不是C/S

        使用模块来进行工作,ansible有很多模块,copy shell... 真正在主机上执行任务的是模块。

(3)ansible的特性

        幂等性,计算机中的概念,在幂等操作中,无论执行多少次,结果都是一样的,多次执行相同的操作,不会产生不同的结果。

        在ansible中,如果操作符合幂等性,那么不会对目标主机产生额外的副作用。

(4)ansible的组件

  • lnventory 主机清单 主机组

  • modules 模块*

  • plugins 插件

  • playbook 剧本(脚本)*

(5)ansible的优缺点

        优点:部署快,只要能上网,或者有源码包,安装部署很简单;基于yaml格式编写的脚本,同一台服务器上多次执行同一个任务没有任何副作用。

        缺点:语法要专门学;主机和控制主机必须都是linux,至少有两台服务器,主机和server。

2.安装

#安装ansible (ubuntu系统)

apt -y install ansible #在主机192.168.206.30上安装

#免密登录

ssh-keygen -t rsa

apt -y install sshpass

sshpass -p '1' ssh-copy-id root@192.168.206.50 #-p 登录密码

sshpass -p '1' ssh-copy-id root@192.168.206.55

#配置文件

mkdir /etc/ansible

cd /etc/ansible

vim hosts

[web]

192.168.206.50

[web1]

192.168.206.55

#主机50在web组,主机55在web1组

#如果不想要设置免密登录,可以手动创建ansible.cfg

vim ansible.cfg

[defaults]
host_key_checking = False #禁止使用ssh的秘钥检查
inventory=/etc/ansible/hosts #指定主机清单的文件
forks = 20 #同时可以对多少主机进行配置,默认是5,可以提高执行速度
pipelining = True #减少对ssh会话中的操作,提高性能
strategy = free #任务会立即对下一个主机并行执行,不用等待其他主机完成
retry_files_enabled = False #如果任务失败,禁用自动重试的功能

vim hosts

[web]

192.168.206.5[0:9]  #表示50,51,52,53...59

[all:vars] #组内所有主机统一用root登录,登录密码为1,端口为22
ansible_user=root
ansible_password=1
ansible_port=22

#如果是centos系统,yum -y install ansible之后在/etc/ansible下有配置文件

直接修改即可

vim /etc/ansible/ansible.cfg

#71行取消注释

host_key_checking = False

vim hosts

[web]

192.168.206.5[0:9]  #表示50,51,52,53...59

[all:vars] #组内所有主机统一用root登录,登录密码为1,端口为22
ansible_user=root
ansible_password=1
ansible_port=22

3.ansible模块

  • command模块  

        就是在目标主机执行命令,不支持管道符,也不能使用重定向。----默认模块

ansible all -m command -a 'chdir=/opt tar -xf nginx-1.22.tar.gz'

ansible 固定开头

all:<组名,ip,all,> 声明操作的对象

-m 指定模块

command 就是模块名

-a 指定参数(指定操作)

'chdir=/opt tar -xf nginx-1.22.tar.gz': 具体要执行的命令

chdir=/opt 声明目标主机的目录

creates 判断指定的文件是否存在,如果存在,不执行后续的操作

removes 判断指定的文件是否存在,如果存在,执行后续的操作

  • shell模块

        是command模块的升级,但是可以使用管道符,可以重定向还可以使用连接符链接多个命令。

        可以用 && 或者 ; 连接多条命令

 

  • cron模块

分、时、日、月、周

minute/hour/day/month/weekday

-m cron

name 计划任务的名称 不是必须的

job 计划执行的命令

state: present 表示添加,默认就是添加,可以不写

          absent 表示移除

 

 

  • user和group  

-m user

-m group

name 用户名或者组名 必有参数

state=present/absent 创建/删除

uid 数字

gid 数字

shell 默认就是/bin/bash

create_home yes/no 是否替换用户的家目录

remove=yes/no 删除用户时是否删除家目录

password 创建用户的登录密码

system yes/no 表示用户是否是系统用户

 

  • copy模块

dest: 文件复制到目标主机的位置

src: 源文件,主机的文件 --->目标主机

mode: 修改目标文件权限

owner: 文件的所有者

group: 文件的所在组

content: 复制输出的内容到目标主机,使用content就不能使用src

 

 

如果复制目录,源文件的路径是目录,目标主机的路径也必须是目录才可以复制

  • file模块  

和copy有相似之处,

mode: 修改目标文件权限

owner: 文件的所有者

group: 文件的所在组

path----> 目标主机的文件路径

state:

link 做软连接 touch 创建 absent 删除

#特殊情况下才会有src

src ----> 指定创建的文件为软连接

  • hostname和ping

hostname 设置目标主机的主机名

ping 测试目标主机的连通性

  •  yum/apt模块---安装和卸载

ansible web -m apt -a 'name=nginx' #安装

ansible web -m apt -a 'name=nginx state=absent' #删除

ansible web -m shell -a 'apt -y install nignx' #安装用shell模块也可以

  • service模块

也可以用command或者shell模块---相当于systemctl 对服务的状态进行控制

name=软件名

enabled=true--->开机自启

state:

started/stopped/restarted 开/停/重启

runlevel=40 设定开机自启的运行级别,数字越大,优先级越高

#ubuntu安装软件完毕自启,cnetos要设置开机自启

  • iptables模块

iptables模块 -- 支持centos和ubuntu

firewalld -- 仅支持centos

 

  • script模块  

指定本地的脚本,然后脚本中的命令在目标主机执行,结果也是输出到目标主机。

创建完脚本后要赋权

 

  • setup 模块

收集节点信息,查看目标主机的配置信息

通过facts组件收集

filter是过滤,不加filter就显示全部

相关文章:

ansible基础

ansible 1.概述 ansible是基于python语言开发&#xff0c;配置管理和部署应用的工具。批量的配置&#xff0c;部署&#xff0c;管理“上千台”主机 &#xff08;实际一次100台左右&#xff09;&#xff0c;ansible只要在一台主机上就可以对其他主机进行操作。 &#xff08;1&…...

人工智能之深度学习_[2]-PyTorch入门

PyTorch 1.PyTorch简介 1.1 什么是PyTorch PyTorch是一个基于Python的科学计算包 PyTorch安装 pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simplePyTorch一个基于Python语言的深度学习框架&#xff0c;它将数据封装成张量&#xff08;Tensor&#xff09;来进行…...

基于Java的语音陪聊软件——支持聊天私聊-礼物系统-直播系统-缘分匹配-游戏陪玩

丰富的经验、成熟的技术&#xff0c;打造适合当下市场发展的语音交友软件源码。Java 语言凭借其独特的优势&#xff0c;为这款语音陪聊软件的稳健运行和持续发展奠定了坚实基础。它不仅融合了聊天私聊、礼物系统和直播系统等实用且有趣的功能&#xff0c;还创新性地引入了缘分匹…...

Go语言的文件操作

Go语言的文件操作 Go语言是一种开源的编程语言&#xff0c;由谷歌开发&#xff0c;具有简单、高效和并发的特点。在日常开发中&#xff0c;文件操作是一个非常重要且常见的任务。从读取配置文件到写入日志文件&#xff0c;从处理数据到存储结果&#xff0c;文件操作无处不在。…...

php审计1-extract函数变量覆盖

php审计1-extract函数变量覆盖 这是一个关于php审计的栏目&#xff0c;本人也是初学者&#xff0c;分享一下网上的关于php审计的一些知识&#xff0c;学习一下php的语法&#xff0c;顺便记录一下学习过程。 以下是一个关于php审计ctf题 <?php$flagflag.txt; extract($_…...

百度热力图数据原理,处理及论文应用7

目录 0、数据简介0、示例数据1、百度热力图数据日期如何选择1.1、其他实验数据的时间1.2、看日历1.3、看天气 2、百度热力图几天够研究&#xff1f;部分文章统计3、数据原理3.1.1 ** 这个比较重要&#xff0c;后面还会再次出现。核密度的值怎么理解&#xff1f;**3.1.2 Csv->…...

端口镜像和端口安全

✍作者&#xff1a;柒烨带你飞 &#x1f4aa;格言&#xff1a;生活的情况越艰难&#xff0c;我越感到自己更坚强&#xff1b;我这个人走得很慢&#xff0c;但我从不后退。 &#x1f4dc;系列专栏&#xff1a;网络安全从菜鸟到飞鸟的逆袭 目录 一&#xff0c;端口镜像二&#xf…...

Elasticsearch:Jira 连接器教程第一部分

作者&#xff1a;来自 Elastic Gustavo Llermaly 将我们的 Jira 内容索引到 Elaasticsearch 中以创建统一的数据源并使用文档级别安全性进行搜索。 在本文中&#xff0c;我们将回顾 Elastic Jira 原生连接器的一个用例。我们将使用一个模拟项目&#xff0c;其中一家银行正在开发…...

ThreeJs功能演示——几何体操作导入导出

1、内部创建几何体导出编辑能力 1&#xff09;支持内部创建的面、正方体、球体 内部创建物体时&#xff0c;如果是三维物体&#xff0c;要创建集合形状geometry&#xff0c;和对应的材质material。再一起创建一个三维物体。 // 存储创建的几何体列表const geometries [];cre…...

LeetCode::2270. 分割数组的方案数

2270. 分割数组的方案数 思路 前缀和 提示 给你一个下标从 0 开始长度为 n 的整数数组 nums 。 如果以下描述为真&#xff0c;那么 nums 在下标 i 处有一个 合法的分割 &#xff1a; 前 i 1 个元素的和 大于等于 剩下的 n - i - 1 个元素的和。下标 i 的右边 至少有一个 元…...

elementui表单验证,数据层级过深验证失效

先看示例代码&#xff0c;代码为模拟动态获取表单数据&#xff0c;然后动态添加rules验证规则&#xff0c;示例表单内输入框绑定form内第四层&#xff1a; <template><el-form :model"form" :rules"rules" ref"ruleForm" label-width&…...

【Java】LinkedHashMap (LRU)淘汰缓存的使用

文章目录 **1. initialCapacity&#xff08;初始容量&#xff09;****2. loadFactor&#xff08;加载因子&#xff09;****3. accessOrder&#xff08;访问顺序&#xff09;****完整参数解释示例****示例验证** LinkedHashMap 在 Java 中可维护元素插入或访问顺序&#xff0c;并…...

CancerGPT :基于大语言模型的罕见癌症药物对协同作用少样本预测研究

今天我们一起来剖析一篇发表于《npj Digital Medicine》的论文——《CancerGPT for few shot drug pair synergy prediction using large pretrained language models》。该研究聚焦于一个极具挑战性的前沿领域&#xff1a;如何利用大语言模型&#xff08;LLMs&#xff09;在数…...

《汽车维护与修理》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答&#xff1a; 问&#xff1a;《汽车维护与修理》是不是核心期刊&#xff1f; 答&#xff1a;不是&#xff0c;是知网收录的正规学术期刊。 问&#xff1a;《汽车维护与修理》级别&#xff1f; 答&#xff1a;国家级。主管单位&#xff1a;中国汽车维修行业协会 …...

tomcat状态一直是Exited (1)

docker run -di -p 80:8080 --nametomcat001 你的仓库地址/tomcat:9执行此命令后tomcat一直是Exited(1)状态 解决办法&#xff1a; 用以下命令创建运行 docker run -it --name tomcat001 -p 80:8080 -d 你的仓库地址/tomcat:9 /bin/bash最终结果 tomcat成功启动...

消息中间件的基础概念入门

目录 一、什么是消息中间件 1.1、简介 1.2、消息中间件的主要作用 解耦合 异步通信 负载均衡 可靠性与持久性 消息路由与调度 削峰 事务支持 监控与审计 跨平台和跨语言支持 二、常用消息中间件对比 2.1、 RabbitMQ 2.1.1、特点 2.1.2、适用场景 2.2、Apache K…...

基于Web的宠物医院看诊系统设计与实现(源码+定制+开发)在线预约平台、宠物病历管理、医生诊疗记录、宠物健康数据分析 宠物就诊预约、病历管理与健康分析

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…...

Excel数据叠加生成新DataFrame:操作指南与案例

目录 一、准备工作 二、读取Excel文件 三、数据叠加 四、处理重复数据(可选) 五、保存新DataFrame到Excel文件 六、案例演示 七、注意事项 八、总结 在日常数据处理工作中,我们经常需要将不同Excel文档中的数据整合到一个新的DataFrame中,以便进行进一步的分析和处…...

Web 开发入门之旅:从静态页面到全栈应用的第一步

Web 开发入门之旅&#xff1a;从静态页面到全栈应用的第一步 在当今互联网飞速发展的时代&#xff0c;掌握 Web 开发技能已成为众多技术爱好者和职场人士的必修课。然而&#xff0c;对于初学者而言&#xff0c;面对繁杂的技术栈和庞大的学习资源&#xff0c;往往感到无从下手。…...

WebSocket实现分布式的不同方案对比

引言 随着实时通信需求的日益增长&#xff0c;WebSocket作为一种基于TCP的全双工通信协议&#xff0c;在实时聊天、在线游戏、数据推送等场景中得到了广泛应用。然而&#xff0c;在分布式环境下&#xff0c;如何实现WebSocket的连接管理和消息推送成为了一个挑战。本文将对比几…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程

鸿蒙电脑版操作系统来了&#xff0c;很多小伙伴想体验鸿蒙电脑版操作系统&#xff0c;可惜&#xff0c;鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机&#xff0c;来体验大家心心念念的鸿蒙系统啦&#xff01;注意&#xff1a;虚拟…...

向量几何的二元性:叉乘模长与内积投影的深层联系

在数学与物理的空间世界中&#xff0c;向量运算构成了理解几何结构的基石。叉乘&#xff08;外积&#xff09;与点积&#xff08;内积&#xff09;作为向量代数的两大支柱&#xff0c;表面上呈现出截然不同的几何意义与代数形式&#xff0c;却在深层次上揭示了向量间相互作用的…...

麒麟系统使用-进行.NET开发

文章目录 前言一、搭建dotnet环境1.获取相关资源2.配置dotnet 二、使用dotnet三、其他说明总结 前言 麒麟系统的内核是基于linux的&#xff0c;如果需要进行.NET开发&#xff0c;则需要安装特定的应用。由于NET Framework 是仅适用于 Windows 版本的 .NET&#xff0c;所以要进…...

JavaScript性能优化实战大纲

性能优化的核心目标 降低页面加载时间&#xff0c;减少内存占用&#xff0c;提高代码执行效率&#xff0c;确保流畅的用户体验。 代码层面的优化 减少全局变量使用&#xff0c;避免内存泄漏 // 不好的实践 var globalVar I am global;// 好的实践 (function() {var localV…...

上位机知识篇---Flask框架实现Web服务

本文将简单介绍Web 服务与前端显示部分&#xff0c;它们基于Flask 框架和HTML/CSS/JavaScript实现&#xff0c;主要负责将实时视频流和检测结果通过网页展示&#xff0c;并提供交互式状态监控。以下是详细技术解析&#xff1a; 一、Flask Web 服务架构 1. 核心路由设计 app.…...