Ansible从入门到精通【一】

news2024/11/22 10:57:14

大家好,我是早九晚十二,目前是做运维相关的工作。写博客是为了积累,希望大家一起进步!
我的主页:早九晚十二
专栏名称:Ansible从入门到精通 立志成为ansible大佬

请添加图片描述

Ansible初识

ansible基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible架构相对比较简单,仅需通过SSH连接客户机执行任务即可。
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:

(1)、连接插件connection plugins:负责和被监控端实现通信;
(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3)、各种模块核心模块、command模块、自定义模块;
(4)、借助于插件完成记录日志邮件等功能;
(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

环境准备

首先我们需要先准备两台机器,一台为安装ansible的主控机,一台为测试机

#主控机
yum -y install ansible

Ansible的主要组成部分

ANSIBLE PLAYBOOKS:任务剧本(任务集),编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,通常是JSON格式的YML文件INVENTORY;Ansible管理主机的清单/etc/anaible/hostsMODULESAnsible执行命令的功能模块,多数为内置核心模块,也可自定义PLUGINS:;模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等,该功能不常用
API: 供第三方程序调用的应用程序编程接口
ANSIBLE: 组合INVENTORY、API、MODULES、PLUGINS的绿框,可以理解为是ansible命令工具,其为核心执行工具

Ansible的配置文件详解

Inventory 主机清单

ansible的主要功用在于批量主机操作,为了便捷地使用其中的部分主机,可以在inventory file中将其分组命名
默认的inventory file为/etc/ansible/hosts
inventory file可以有多个,且也可以通过Dynamic Inventory来动态生成
/etc/ansible/hosts文件格式inventory文件遵循INI文件风格,中括号中的字符为组名。可以将同一个主机同时归并到多个不同的组中;此外,当如若目标主机使用了非默认的SSH端口还可以在主机名称之后使用冒号加端口号来标明。
例如

[test]
192.168.100.100
test1.example.com

如果主机名称遵循相同的命名格式,也可以以列表标注

[test]
192.168.100.[1:100]
test[1:100].example.com
test[a:z].example.com

配置文件/etc/ansible/ansible.cfg

该文件是ansible的主配置文件,所有内容都在里面定义,一般都是默认状态,我们操作的一般也只是**[defaults]**分组

#inventory = /etc/ansible/hosts # 主机列表配置文件
#library = /usr/share/my_modules/ # 库文件存放目录
#remote_tmp = SHOME/.ansible/tmp #临时py命令文件存放在远程主机目录
#local_tmp= $HOME/.ansible/tmp # 本机的临时命令执行目录
#forks= 5 # 默认并发数,即同时执行五台机器
#sudo user = root # 默认sudo 用户
#ask_sudo_pass = True #每次执行ansible命令是否询问ssh密码
#ask _pass= True
#remote_port = 22 #默认使用22端口远程等登录
#host_key_checking = False # 检查对应服务器的host key,建议取消注释
#log_path=/var/log/ansible.log #日志文件

需要注意的主要是host_key_checking,如果不取消注释,无法实现批量免密登录。另外log_path默认是不记录,如果开启的话,服务即时生效,不必重启

Ansible的命令执行来源

USER,普通用户,即SYSTEM ADMINISTRATOR
CMDB (配置管理数据库) API 调用
PUBLIC/PRIVATE CLOUD API调用
USER-> Ansible Plavbook -> Ansibile利用ansible实现管理的方式:
Ad-Hoc 即ansible命令,主要用于临时命令使用场景
Ansible-playbook 主要用于长期规划好的,大型项目的场景,需要有前提的规划

Ansible-Playbook执行过程

将已有排好的任务集写入Ansible-Playbook
通过ansible-playbook命令分拆任务集至逐条ansible命令,按预定规则逐条执行
Ansible主要操作对象 :
HOSTS主机
NETWORKING网络设备
注意事项
执行ansible的主机一般称为主控端,中控,master或堡垒机
主控端Python版本需要2.6或以上
被控端Python版本小于2.4需要安装python-simplejson
被控端如开启SELinux需要安装libselinux-python
windows不能做为主控端

码字不易。如果文章对您有希望的话,请三连支持一波。
如有问题,欢迎留言,一起探讨,感谢。
也可关注下方公众号,看到留言后会第一时间回复。

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

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

相关文章

关闭linux kernel内核的启动log在控制台的输出

要关闭Linux内核的启动日志,你可以通过以下方法之一进行操作: 1. 通过引导加载器配置: 打开引导加载器的配置文件,如GRUB的配置文件 /boot/grub/grub.cfg。 在内核的启动行(以 “linux” 或 “kernel” 开头&#xf…

MyBatisPlus快速入门(二)MyBatisPlus快速入门体验

一、初始化数据库(基于 HeidiSQL)1.1 创建数据库1.2创建数据表1.3 初始化数据 二、初始化项目(基于Spring Boot)2.1 创建项目2.2 新增依赖2.3 数据库配置2.4 配置 MyBatis Plus2.5 创建实体类2.6 创建Mapper层接口2.7 创建Server层…

怎么用迅捷PDF转换器在线修改图片大小

大家在生活和工作中会遇到图片的大小尺寸不合适的情况,尤其是一些公用的照片,都会有固定的尺寸要求。或者是一些同学想要考研考公考编之类的,也需要严格按照规定来修改图片。那么怎么才能快速修改图片大小呢? 推荐大家使用迅捷PD…

OpenVINO 2022.3实战四:POT API 实现 YOLOv5 模型 INT8 量化

OpenVINO 2022.3实战四:POT API 实现 YOLOv5 模型 INT8 量化 将预训练的 YOLOv5m Pytorch 模型转换为 OpenVINO™ FP32 Intermediate Representation (IR) 模型。下一步,通过 OpenVINO™ Post-Training Optimization Tool (POT) API 来定义客制化DataLo…

Linux之文件权限类命令

文件权限类命令 文件属性 Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全线,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定,在…

白嫖免费版gpt与wetab插件的使用

目录 网址 如何使用 wetab 介绍wetab 怎么获得这个插件 使用效果 网址 1. wetab网站 : chatgpt (免费,不需要账号,不需要翻墙) 2. gpt镜像网站:https://chatbot.theb.ai/#/chat/1002 (免费,不需要账号&#xff0…

learn C++ NO.6——类和对象(4)

1.再谈构造函数 1.1.构造函数体赋值 在创建类的对象时,编译器回去调用类的构造函数,来各个成员变量一个合适的值。 class Date { public:Date(int year,int month,int day){_year year;_month month;_day day;}private:int _year;int _month;int _…

Neepu2023-部分Reserve复现

目录 Base IKUN检查器 dnSpy junk code Cheat Engine工具使用: 奇怪的ELF mov混淆问题: Xor Base 打开附件,可以看到主函数 先是给出一个物理题,要求输入答案,这个无关紧要,接着要求输入一串字符&…

MyBatis-Plus 可视化代码生成器来啦,生产力直接拉满

在基于Mybatis的开发模式中,很多开发者还会选择Mybatis-Plus来辅助功能开发,以此提高开发的效率。虽然Mybatis也有代码生成的工具,但Mybatis-Plus由于在Mybatis基础上做了一些调整,因此,常规的生成工具生成的代码还有一…

被Chatgpt碾压的打工人与大学生,准备反击!

最近一段时间,chatgpt可谓如火如荼,它的出现引发各行各业的震动,有人利用它实现了一夜暴富,有企业将它纳进人才招聘的技能要求中,国内各大厂商也纷纷下场推出自家的AI大模型,从第一代到GPT-4,所…

基于html+css的图片展示92

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

用好 kafka,你不得不知的那些工具

前言 工欲善其事,必先利其器。本文主要分享一下消息中间件 kafka 安装部署的过程,以及我平时在工作中针对 kafka 用的一些客户端工具和监控工具。 kafka 部署架构 一个 kafka 集群由多个kafka broker组成,每个broker将自己的元数据信息注册…

【ROS2】install micro_ros

本文参考b站up:“照祥同学”的教程来的,中间一些细节的操作谨以此文作为补充,或者说是我在按照教程走的时候遇到的问题记录。视频链接:第二节:安装micro_ros 的 Arduino 开发环境_哔哩哔哩_bilibili 1. 安装和配置ros…

集权安全 | 域渗透中的 DCSync技术分析

DCSync是AD域渗透中常用的凭据窃取手段,默认情况下,域内不同DC每隔15分钟会进行一次数据同步,当一个DC从另外一个DC同步数据时,发起请求的一方会通过目录复制协议(MS- DRSR)来对另外一台域控中的域用户密码…

一分钟图情论文:《面向学科建设的我国文献资源保障评价研究综述》

一分钟图情论文:《面向学科建设的我国文献资源保障评价研究综述》 高质量的文献资源保障工作不仅能够提供完备的环境、满足用户的信息需求,在高校中,还可以发挥促进教学资源优化和科研成果产出、增强科技基础能力等作用。华中师范大学的夏立…

『树莓派云台机器人』01. 使用手机控制树莓派云台机器人

目录 1. 检查是否已经开机,连接机器人wifi2. 安装树莓派控制app应用,直连模式连接机器人3. 机器人功能实现总结 欢迎关注 『树莓派云台机器人』 博客,持续更新中 欢迎关注 『树莓派云台机器人』 博客,持续更新中 动手组装等步骤请…

halcon 安装21.05版本 小坑记录

(注意:都可以设置语言) 1.选择扩展安装 影响安装进度显示 可以后续单独安装 Visual Studio变量检查扩展 2.破解相关 主程序dll路径 路径: C:\Users******\AppData\Local\Programs\MVTec\HALCON-21.05-Progress\bin\x64-win64 Visual St…

chatgpt赋能python:Python修改配置文件

Python 修改配置文件 Python 作为一种优秀的编程语言,在实际使用中起到了很大的作用。对于开发者来说,修改配置文件是一个常见的操作,Python 也支持在代码中修改配置文件。本篇文章将介绍如何使用 Python 修改配置文件,并且分享一…

【CSAPP】虚拟内存 | 地址空间 | 页表内存保护 | 页错误引发异常逐出 (evicted)

💭 写在前面:本文将学习《深入理解计算机系统》虚拟内存部分,CSAPP 是计算机科学经典教材《Computer Systems: A Programmers Perspective》的缩写,该教材由Randal E. Bryant和David R. OHallaron 合著。 📜 本章目录…

Bytebase:更好地管理你的 OceanBase 数据库

我们很高兴宣布:OceanBase 用户现在可以使用 Bytebase 进行数据库变更管理啦!🚀 Bytebase 是一款为 DevOps 团队准备的数据库 CI/CD 工具,专为开发者和 DBA 打造,也是唯一被 CNCF Landscape 收录的 Database CI/CD 产…