当前位置: 首页 > 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的连接管理和消息推送成为了一个挑战。本文将对比几…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码"&#xff1a;Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力&#xff0c;从金融交易到交通管控&#xff0c;这些关乎国计民生的关键领域…...

ArcGIS Pro+ArcGIS给你的地图加上北回归线!

今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等&#xff0c;设置经线、纬线都以10间隔显示。 2、需要插入背会归线&#xf…...

第22节 Node.js JXcore 打包

Node.js是一个开放源代码、跨平台的、用于服务器端和网络应用的运行环境。 JXcore是一个支持多线程的 Node.js 发行版本&#xff0c;基本不需要对你现有的代码做任何改动就可以直接线程安全地以多线程运行。 本文主要介绍JXcore的打包功能。 JXcore 安装 下载JXcore安装包&a…...

MySQL基本操作(续)

第3章&#xff1a;MySQL基本操作&#xff08;续&#xff09; 3.3 表操作 表是关系型数据库中存储数据的基本结构&#xff0c;由行和列组成。在MySQL中&#xff0c;表操作包括创建表、查看表结构、修改表和删除表等。本节将详细介绍这些操作。 3.3.1 创建表 在MySQL中&#…...