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语言开发,配置管理和部署应用的工具。批量的配置,部署,管理“上千台”主机 (实际一次100台左右),ansible只要在一台主机上就可以对其他主机进行操作。 (1&…...
人工智能之深度学习_[2]-PyTorch入门
PyTorch 1.PyTorch简介 1.1 什么是PyTorch PyTorch是一个基于Python的科学计算包 PyTorch安装 pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simplePyTorch一个基于Python语言的深度学习框架,它将数据封装成张量(Tensor)来进行…...
基于Java的语音陪聊软件——支持聊天私聊-礼物系统-直播系统-缘分匹配-游戏陪玩
丰富的经验、成熟的技术,打造适合当下市场发展的语音交友软件源码。Java 语言凭借其独特的优势,为这款语音陪聊软件的稳健运行和持续发展奠定了坚实基础。它不仅融合了聊天私聊、礼物系统和直播系统等实用且有趣的功能,还创新性地引入了缘分匹…...
Go语言的文件操作
Go语言的文件操作 Go语言是一种开源的编程语言,由谷歌开发,具有简单、高效和并发的特点。在日常开发中,文件操作是一个非常重要且常见的任务。从读取配置文件到写入日志文件,从处理数据到存储结果,文件操作无处不在。…...
php审计1-extract函数变量覆盖
php审计1-extract函数变量覆盖 这是一个关于php审计的栏目,本人也是初学者,分享一下网上的关于php审计的一些知识,学习一下php的语法,顺便记录一下学习过程。 以下是一个关于php审计ctf题 <?php$flagflag.txt; extract($_…...
百度热力图数据原理,处理及论文应用7
目录 0、数据简介0、示例数据1、百度热力图数据日期如何选择1.1、其他实验数据的时间1.2、看日历1.3、看天气 2、百度热力图几天够研究?部分文章统计3、数据原理3.1.1 ** 这个比较重要,后面还会再次出现。核密度的值怎么理解?**3.1.2 Csv->…...
端口镜像和端口安全
✍作者:柒烨带你飞 💪格言:生活的情况越艰难,我越感到自己更坚强;我这个人走得很慢,但我从不后退。 📜系列专栏:网络安全从菜鸟到飞鸟的逆袭 目录 一,端口镜像二…...
Elasticsearch:Jira 连接器教程第一部分
作者:来自 Elastic Gustavo Llermaly 将我们的 Jira 内容索引到 Elaasticsearch 中以创建统一的数据源并使用文档级别安全性进行搜索。 在本文中,我们将回顾 Elastic Jira 原生连接器的一个用例。我们将使用一个模拟项目,其中一家银行正在开发…...
ThreeJs功能演示——几何体操作导入导出
1、内部创建几何体导出编辑能力 1)支持内部创建的面、正方体、球体 内部创建物体时,如果是三维物体,要创建集合形状geometry,和对应的材质material。再一起创建一个三维物体。 // 存储创建的几何体列表const geometries [];cre…...
LeetCode::2270. 分割数组的方案数
2270. 分割数组的方案数 思路 前缀和 提示 给你一个下标从 0 开始长度为 n 的整数数组 nums 。 如果以下描述为真,那么 nums 在下标 i 处有一个 合法的分割 : 前 i 1 个元素的和 大于等于 剩下的 n - i - 1 个元素的和。下标 i 的右边 至少有一个 元…...
elementui表单验证,数据层级过深验证失效
先看示例代码,代码为模拟动态获取表单数据,然后动态添加rules验证规则,示例表单内输入框绑定form内第四层: <template><el-form :model"form" :rules"rules" ref"ruleForm" label-width&…...
【Java】LinkedHashMap (LRU)淘汰缓存的使用
文章目录 **1. initialCapacity(初始容量)****2. loadFactor(加载因子)****3. accessOrder(访问顺序)****完整参数解释示例****示例验证** LinkedHashMap 在 Java 中可维护元素插入或访问顺序,并…...
CancerGPT :基于大语言模型的罕见癌症药物对协同作用少样本预测研究
今天我们一起来剖析一篇发表于《npj Digital Medicine》的论文——《CancerGPT for few shot drug pair synergy prediction using large pretrained language models》。该研究聚焦于一个极具挑战性的前沿领域:如何利用大语言模型(LLMs)在数…...
《汽车维护与修理》是什么级别的期刊?是正规期刊吗?能评职称吗?
问题解答: 问:《汽车维护与修理》是不是核心期刊? 答:不是,是知网收录的正规学术期刊。 问:《汽车维护与修理》级别? 答:国家级。主管单位:中国汽车维修行业协会 …...
tomcat状态一直是Exited (1)
docker run -di -p 80:8080 --nametomcat001 你的仓库地址/tomcat:9执行此命令后tomcat一直是Exited(1)状态 解决办法: 用以下命令创建运行 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的宠物医院看诊系统设计与实现(源码+定制+开发)在线预约平台、宠物病历管理、医生诊疗记录、宠物健康数据分析 宠物就诊预约、病历管理与健康分析
博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…...
Excel数据叠加生成新DataFrame:操作指南与案例
目录 一、准备工作 二、读取Excel文件 三、数据叠加 四、处理重复数据(可选) 五、保存新DataFrame到Excel文件 六、案例演示 七、注意事项 八、总结 在日常数据处理工作中,我们经常需要将不同Excel文档中的数据整合到一个新的DataFrame中,以便进行进一步的分析和处…...
Web 开发入门之旅:从静态页面到全栈应用的第一步
Web 开发入门之旅:从静态页面到全栈应用的第一步 在当今互联网飞速发展的时代,掌握 Web 开发技能已成为众多技术爱好者和职场人士的必修课。然而,对于初学者而言,面对繁杂的技术栈和庞大的学习资源,往往感到无从下手。…...
WebSocket实现分布式的不同方案对比
引言 随着实时通信需求的日益增长,WebSocket作为一种基于TCP的全双工通信协议,在实时聊天、在线游戏、数据推送等场景中得到了广泛应用。然而,在分布式环境下,如何实现WebSocket的连接管理和消息推送成为了一个挑战。本文将对比几…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
