Ansible自动化部署K8s集群一 Ansible的基础使用实战
一、Ansible介绍
1.安装ansible: yum install ansible -y
2.ansible的架构图:
3.ansible四部分:
inventory:ansible管理的主机信息,包括ip地址、ssh端口、账号和密码等
modules:任务均由模块完成
plugins:增加ansible的核心功能
playbooks:模块化当以一些列任务供外部调用
4.主机清单(示例代码):
[webservers]
192.168.142.152
192.168.142.153
www.xiao.org
5.命令行使用:ad-hoc可以输入内容快速执行某个操作
远程连接主机认证:
[webservers]
192.168.142.152 ansible_ssh_user=root ansible_ssh_pass='xiao'
192.168.142.153 ansible_ssh_user=root ansible_ssh_pass='xiao'
ssh密钥对认证(ansible是基于ssh进行远程连接执行命令:
[webservers]
192.168.142.152 ansible_ssh_user=root ansible_ssh_key=/root/.ssh/id_rsa
192.168.142.153 ansible_ssh_user=root
上述的密钥信息也可以在ansible.cfg配置文件中指定
另外,也可以先建立起控制主机和受控主机之间的ssh的免密连接,通过在控制主机上创建一对密钥对,将公钥通过ssh_copy_id root@192.168.142.152/3传递到被控主机上,可以顺利执行ansible的ad-hoc命令。
6.ansible命令行常用的选项:
-C / --check playbook.yml的语法检查,不执行任何操作
-e var=test 设置附加变量 key=value
--user=xiao ssh连接的用户,默认为none
-k ssh连接用户的密码
-b / --become 提权,默认为root
-K 提权密码
7.命令行使用:
ansible all -m ping 网络连通性测试
ansible all -m shell -a"ls /root" -u root -k 在命令行执行脚本(查看/root信息)
ansible webservers -m copy -a "src=/etc/hosts dest=/tmp/host" 指定webservers主机组中的主机,使得将本主机的指定文件复制到指定主机组的指定目录下。
二、ansible的常用模块
1.shell(在远程主机上执行脚本):
ansible webservers -m shell -a "ls /root"
其中如果执行多条shell语句可以使用分号将其分隔开。
2.copy(将文件复制到远程主机):
ansible webservers -m copy -a "src=/etc/hosts dest=/tmp/host mode=777 owner=xiao group=xiao backup=yes"
上述指令的作用时将指定的文件复制到远程主机上并指定复制后的主机的属主和文件的权限,其中的backup表示如果远程主机上该文件存在,会将其创建为一个备份。
3.file(管理文件和文件属性):
ansible webservers -m file -a "path=/tmp/hosts state=absent"
上述命令表示删除远程主机上的path路径的文件或者递归删除目录
上述中state参数的值决定对文件进行什么操作,其中absent表示删除,present表示创建
4.yum(软件包管理):
ansible webservers -m yum -a "name=httpd state=latest"
该条命令表示在远程主机上安装最新版本的http服务,其中state可以取absent(卸载) present(安装yum源中的软件包) latest(安装最新的软件)
5.systemd(管理服务):
ansible webservers -m systemd -a "name=httpd state=started enabled=yes"
该命令表示启动httpd服务并使其开机自启动,也可以设定其服务状态为stopped restarted reloaded
6.unarchive(解压):
ansible webservers -m unarchive -a "src=test.tar.gz dest=/tmp"
该命令表示将本机文件的压缩文件解压到远程主机的指定目录上
7.debug(执行过程中打印语句):
ansible webservers -m debug -a "var=hostvars[inventory_hostname]"
该命令表示打印远程主机的所有变量
三、Playbook的简单操作
1.主机和用户:
- hosts: webserversremote_user: xiaobecome: yesbecome_user: yes
2.定义变量:
#命令行传递:
-e var=test
#主机变量和组变量(在inventory中定义变量)#主机变量
[webservers]
192.168.142.152 ansible_ssh_user=root hostname=web1
192.168.142.153 ansible_ssh_user=root hostname=web2#主机组变量
[webservers:vars]
ansible_ssh_user=root
单文件存储:
/etc/ansible/group_vars/all.yml 对所有的主机有效
/etc/ansible/host_vars/webservers.yml 只对webservers主机组的主机生效
在playbook中自定义变量:
- hosts: webservers
vars:
http_port: 80
server_name: www.xiao.org
register变量(将其他命令的运行结果保存下来作为变量的值):
-shell: /etc/passwd
register: result
-debug:
var: result
3.任务列表:
tasks:
- name: 安装nginx最新版yum: pkg=nginx state=latest
4.任务控制:
可以将大的playbook中的多个任务进行标记,可以让其只执行有特殊标记的任务,或者让其跳过执行有特殊标记的任务。
tasks:
- name; 安装nginx最新版yum: pkg=nginx state=latesttags: install
- name: 写入nginx的配置文件template: src=/test/nginx.conf dest=/etc/nginx/nginx.conftags: config
ansible-playbook test.yml --tags "install" 表示只执行带有install标签的任务
ansible-playbook test.yml --skip-tags "install" 表示跳过带有install标签的任务
5.流程控制:
tasks:
- name: 仅在192.168.142.152上执行任务debug; msg= {{ansible_default_ipv4.address}}when: ansible_default_ipv4.address == '192.168.142.152'
循环:
tasks:
-name; 批量创建用户user: name={{ item }} state=present groups=xiaowith_items:- testuser1- testuser2
常用的循环语句:
with_items 标准循环
with_fileglob 遍历目录文件
with_dict 遍历字典
相关文章:

Ansible自动化部署K8s集群一 Ansible的基础使用实战
一、Ansible介绍 1.安装ansible: yum install ansible -y 2.ansible的架构图: 3.ansible四部分: inventory:ansible管理的主机信息,包括ip地址、ssh端口、账号和密码等 modules:任务均由模块完成 plugins:增加ansible的核心功能 pla…...
ZooKeeper Watcher 机制详解:从注册到回调的全过程
引言 在分布式系统中,数据的实时性和一致性是至关重要的。ZooKeeper 通过其 Watcher 机制提供了一种高效的方式来监听数据变化或事件,从而使客户端能够在数据发生变化时立即收到通知。本文将深入探讨 ZooKeeper 的 Watcher 机制,具体包括客户…...
flutter_tools/gradle Unsupported class file major version 65 问题解决
1.问题定位 使用 命令 flutter doctor --verbose 可以查看当前项目中,使用的java的版本。 [✓] Android Studio (version 2024.2)• Android Studio at /Applications/Android Studio.app/Contents• Flutter plugin can be installed from:🔨 https…...

C++设计模式 - 模板模式
一:概述 模板方法(Template Method)是一种行为型设计模式。它定义了一个算法的基本框架,并且可能是《设计模式:可复用面向对象软件的基础》一书中最常用的设计模式之一。 模板方法的核心思想很容易理解。我们需要定义一…...

mysql查缺补漏
好文推荐: 【数据库】快速理解脏读、不可重复读、幻读-CSDN博客 再探幻读!什么是幻读?为什么会产生幻读,MySQL中是怎么解决幻读的?-CSDN博客 引擎 mysql默认引擎:innodb 1.支持行锁 2.支持事务 3.支持外键 索引…...

跨越边界,大模型如何助推科技与社会的完美结合?
点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 概述 2024年,大模型技术已成为人工智能领域的焦点。这不仅仅是一项技术进步,更是一次可能深刻影响社会发展方方面面的变革。大模型的交叉能否推动技术与社会的真正融合?2025年…...

哪吒闹海!SCI算法+分解组合+四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测
哪吒闹海!SCI算法分解组合四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测 目录 哪吒闹海!SCI算法分解组合四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测效果一览基本介绍程序设计参考资料 效果一览…...
前端【技术方案】浏览器兼容问题(含解决方案、CSS Hacks、条件注释、特性检测、Polyfill 等)
浏览器兼容性测试工具 https://www.browserstack.com/ HTML 兼容处理 问题1 - 不支持 HTML5 新标签 旧版浏览器(主要是 IE8 及以下)不支持 HTML5 新标签(如 <header>、<nav>、<article> 等) 解决方案 引入 H…...

荣耀手机Magic3系列、Magic4系列、Magic5系列、Magic6系列、Magic7系列详情对比以及最新二手价格预测
目录 荣耀Magic系列手机详细对比 最新二手价格预测 性价比分析 总结 以下是荣耀Magic系列手机的详细对比以及最新二手价格预测: 荣耀Magic系列手机详细对比 特性荣耀Magic3系列荣耀Magic4系列荣耀Magic5系列荣耀Magic6系列荣耀Magic7系列处理器骁龙888&#x…...

后盾人JS -- 模块化开发
开发模块管理引擎 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </he…...

CNN卷积神经网络多变量多步预测,光伏功率预测(Matlab完整源码和数据)
代码地址:CNN卷积神经网络多变量多步预测,光伏功率预测(Matlab完整源码和数据) 标题:CNN卷积神经网络多变量多步预测,光伏功率预测 一、引言 1.1 研究背景及意义 随着全球能源危机的加剧和环保意识的提升ÿ…...
深入 JVM 虚拟机:字符串常量池演变与 intern() 方法工作原理解析
🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template 🌺 仓库主页: GitCode︱ Gitee ︱ Github 💖 欢迎点赞 👍 收藏 ⭐评论 📝 如有错误敬请纠正! 前言 在 Java 开发中,字符串常量池(String Constant…...

单向/双向,单层/多层RNN输入输出维度问题
单向/双向,单层/多层RNN输入输出维度问题 RNN单层单向RNNRnn CellRnn 双层单向RNN单层双向RNN双层双向RNN RNN 单层单向RNN Rnn Cell 循环神经网络最原始的Simple RNN实现如下图所示: 下面写出单个时间步对应的Rnn Cell计算公式: 如果用矩阵运算视角来看待的话&…...
chromium-mojo
https://chromium.googlesource.com/chromium/src//refs/heads/main/mojo/README.md 相关类:https://zhuanlan.zhihu.com/p/426069459 Core:https://source.chromium.org/chromium/chromium/src//main:mojo/core/README.md;bpv1;bpt0 embedder:https://source.chr…...
ZooKeeper 的典型应用场景:从概念到实践
引言 在分布式系统的生态中,ZooKeeper 作为一个协调服务框架,扮演着至关重要的角色。它的设计目的是提供一个简单高效的解决方案来处理分布式系统中常见的协调问题。本文将详细探讨 ZooKeeper 的典型应用场景,包括但不限于配置管理、命名服务…...
缓存组件<keep-alive>
缓存组件<keep-alive> 1.组件作用 组件, 默认会缓存内部的所有组件实例,当组件需要缓存时首先考虑使用此组件。 2.使用场景 场景1:tab切换时,对应的组件保持原状态,使用keep-alive组件 使用:KeepAlive | Vu…...
YouBIP 项目
技术方案 难点 成效 项目背景 库存管理涉及大量数据,如何在前端实现高效的数据展示和交互是一个挑战。库存管理系统需要处理大量的入库、出库、盘点等操作,尤其是在大企业或多仓库场景下,高并发操作可能导致数据库锁争用、响应延迟等问题。…...

react概览webpack基础
react概览 课程介绍 webpack 构建依赖图->bundle 首屏渲染: 减少白屏等待时间 数据、结构、样式都返回。需要服务器的支持 性能优化 ***webpack干的事情 模块化开发 优势: 多人团队协作开发 可复用 单例:全局冲突 闭包 模块导入的顺序 req…...

DeepSeek 助力 Vue 开发:打造丝滑的步骤条
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...

STM32的HAL库开发---高级定时器---互补输出带死区实验
一、互补输出简介 互补输出:OCx输出高电平,则互补通道OCxN输出低电平。OCx输出低电平,则互补通道OCxN输出高电平。 带死区控制的互补输出:OCx输出高电平时,则互补通道OCxN过一会再输出输出低电平。这个时间里输出的电…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...

在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用
文章目录 一、背景知识:什么是 B-Tree 和 BTree? B-Tree(平衡多路查找树) BTree(B-Tree 的变种) 二、结构对比:一张图看懂 三、为什么 MySQL InnoDB 选择 BTree? 1. 范围查询更快 2…...
uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)
UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...

ubuntu22.04有线网络无法连接,图标也没了
今天突然无法有线网络无法连接任何设备,并且图标都没了 错误案例 往上一顿搜索,试了很多博客都不行,比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动,重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...
32单片机——基本定时器
STM32F103有众多的定时器,其中包括2个基本定时器(TIM6和TIM7)、4个通用定时器(TIM2~TIM5)、2个高级控制定时器(TIM1和TIM8),这些定时器彼此完全独立,不共享任何资源 1、定…...