首页 > 其他分享 >Ansible 基础

Ansible 基础

时间:2023-08-20 13:08:41浏览次数:26  
标签:配置文件 主机 配置 基础 Ansible 模块 清单 ansible

ansible 是一个自动化的工具,所以ansible并没有服务需要进行管理;主要来实现企业级的自动化批量部署或下发配置等等,并且ansible 还是一个无代理架构,可以通过应用自身的能力来管理应用本身。

ansible 优势:不需要去做重复的事,配置的下发和应用的部署,以及滚动更新

ansible 执行任务的方式主要为以下两种:

ad-hoc ==》临时命令 ==》 用来执行简单的任务

playbook ==》 剧本 ==》 用来执行复杂的任务

Ansible 基础_配置文件

用户通过 ansible 下发请求后执行的步骤如下:

第一步,回去 Host Inventory(主机清单)中确认需要操控的主机是否在清单中;

第二步,检查用户所使用的是哪一个Core Modules(模块),这里模块分为两种,一种是Core Modules 核心模块,第二种则是 Costorne Modules 扩展模块,扩展模块的出现是为了弥补核心模块功能的不足;

第三步,找到模块后就会根据 Connection Plugins 链接插件链接到被控主机;

第四步,是将模块推送到远程主机来执行(这里其实就是python脚本,执行完毕后就会自己删除掉);

第五步,执行完毕后则会关闭连接。

Ansible 安装

安装方式:

(1)使用yum安装

(2)使用源码包编译安装

(3)使用python的pip包管理器安装

Ansible 基础_redhat_02

Ansible 的主机清单

ansible 所有被管理的对象都可以叫做主机例如服务器,路由器,存储等等,并且ansible只能管理清单中的主机,如果执行任务的主机不在清单里面,那么ansible就无法执行任务;

所有记录主机的文件被叫做主机清单==》inventory ==》默认清单 ==》/etc/ansible/hosts

Ansible 基础_linux_03

ansible 文件定义主机的方式:

(1)使用主机名定义主机,例如:host1.example.com(需注意,该主机名是可以解析成IP)

(2)使用IP来定义主机,例如 192.168.1.1

(3)匹配连续的IP或字母,例如 192.168.1.[1:100],node[a:z],如下图其中 ansible all --list-host 是列举出清单中所有的主机

Ansible 基础_linux_04

(4)通过分组的方式来定义主机(注:如果清单中同时出现主机组和主机,那么主机必须在主机组前面),如下图所示

Ansible 基础_配置文件_05

特殊查询:ansible ungrouped --list-hosts #表示查询不属于任何组的主机 

Ansible 的配置文件

默认:

重点:/etc/ansible/ansible.cfg 主配置文件 ==》如果配置文件不存在会使用默认配置

/etc/ansible/hosts inventory主机清单

/etc/ansible/roles 角色存放的目录

ansible.cfg 配置模块:

Ansible 基础_redhat_06

[defaults]==>通用配置项

[inventory]==>主机清单配置项

[privilege_escalation]==>权限提升配置项

[paramiko_connection]==>远程链接的模块,适用与rhel6之前的系统版本

[ssh_connection]==>SSH的配置项

[persistent_connection]==>保持长链接配置项

[accelerate]==> 链接加速配置项

[selinux]==>SELINUX配置项

[colors]==>颜色配置项

[diff]==>前后两次执行对比

#ansible 的配置文件在系统上会存在多份,其中优先级如下,从高到低

1,ANSIBLE_CONFIG 环境变量

2,./ansible.cfg 当前的工作目录

3,~/.ansible.cfg 当前用户的家目录

4,/etc/ansible/ansible.cfg 默认配置文件

基础配置示例:

(1)优先确认有被控设备正常运行,然后再来配置ansible清单(这里是通过主机名来配置的ansible被控清单,主机名本机已在/etc/hosts文件中做了指定IP解析)

Ansible 基础_redhat_07

(2)配置 ansible.cfg 配置文件

Ansible 基础_配置文件_08

<<EOF
#配置参数含义
inventory = ./hosts #指定当前目录下的hosts为ansible主机清单
remote_user = devops #使用devops用户来连接到被控
ask_pass = false #不使用密码,而是使用秘钥验证

bcome=True #开启提权
become_method=sudo #提权方式为sudo
become_uset=root #提权到root用户
become_ask_pass=false #提权时不需要验证密码

ssh_args #ssh连接项开启,保障连接复用提升性能
EOF

ansible all -m ping #测试ansible的联通性

<< EOF
初期测试时可直接通过ssh秘钥特性实现免密登陆,同步来验证ansible的联通性
EOF

Ansible 基础_ansible_09

标签:配置文件,主机,配置,基础,Ansible,模块,清单,ansible
From: https://blog.51cto.com/u_16170308/7159684

相关文章

  • XXE漏洞--xml基础知识
    一、XML基础知识可以用于配置文件、交换数据要求:XML文档必须有根元素XML文档必须有关闭标签XML标签对大小写敏感XML元素必须被正确嵌套XML属性必须加引号DTD(DocumentTypeDefinition)文档类型定义自动校验格式内容,元素ELEMENT校验实体ENTITY定义字符或值,相当于全局变......
  • 【Freertos基础入门】深入浅出freertos互斥量
    @TOC前言FreeRTOS是一款开源的实时操作系统,提供了许多基本的内核对象,其中包括互斥锁(Mutex)。互斥锁是一种常用的同步机制,用于确保在同一时间内只有一个任务可以访问共享资源,防止竞态条件等并发问题。本文将介绍FreeRTOS中的互斥锁的使用方法和注意事项。一、互斥量是什么?当多个任务......
  • 基础入门-算法分析&传输加密&数据格式&密文存储&代码混淆&逆向保护
    基础入门-算法分析&传输加密&数据格式&密文存储&代码混淆&逆向保护基础入门-算法分析&传输加密&数据格式&密文存储&代码混淆&逆向保护传输数据-编码型&加密型等传输格式-常规&JSON&XML等密码存储-Web&系统&三方应用代码混淆-源代码加密&逆向保护加密:1.常见加密编码进制等算法解......
  • shell脚本基础
    基础命令示例#!/bin/bash固定格式echo"inputstr"输出字符串到屏幕read变量名读取键盘输入test$first==$second&&echo"dengyv"||echo"notdeng"判断字符串是否相等echo"filename"$0。脚本名称echo"totalparamnum"$#。参数个数echo......
  • 基于hexo和aws云搭建个人博客,0基础0费用(2W字超详细图文教程)
    这是篇概述文章,详细参考Hexo建站专栏 最近几个月一直在整理之前的技术笔记,目前虽在体系上还尚有欠缺,但内容方面整理的七七八八了,这些内容一部分记录在了云笔记中另一部分记录在了博客上。于是决定搭建一个个人的技术博客网站以方便技术体系和相关资料的展示和推广,初步的想法和需求......
  • MySQL中的事务基础
    事务的ACID特性MySQL中的事务指的是在数据库操作中,将一组SQL语句作为一个不可分割的执行单元进行处理的机制。事务具有原子性、一致性、隔离性和持久性的特性(ACID特性)。原子性(Atomicity):事务中的所有操作要么全部成功执行,要么全部失败回滚。如果事务执行过程中发生错误或中断,系统......
  • # yyds干货盘点 # Pandas实战——灵活使用pandas基础知识轻松处理不规则数据
    大家好,我是皮皮。一、前言前几天在Python最强王者群【wen】问了一个pandas数据合并处理的问题,一起来看看吧。他的原始数据如下所示:然后预期的结果如下所示:二、实现过程这里【瑜亮老师】给了一个指导如下:原始数据中包含所有所需的信息,但是因为源系统导出的格式问题,有些数据被分配到......
  • java基础
    变量是指一个包含值的存储地址以及对应的符号名称!!变量的名字和变量的值变量就是存储数据的载体类变量使用static关键字修饰,是静态变量static修饰符告诉编译器,无论类被实例化多少次,类变量始终只有一个变量副本。只要类被加载到内存中,它就会存在实例变量也被称为非静态......
  • 01 简介、基础语法
    一、Python简介1、简介Python由荷兰数学和计算机科学研究学会的吉多范罗苏姆于1990年设计,Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言。2021年10月,语言流行指数的编译......
  • 快速傅里叶变换(FFT)基础
    本文是对FFT和NTT原理及实现的介绍,包含所有必要的证明.阅读本文需要具备一点基本的代数知识.给定\(n\)次多项式\(F(x)\)和\(m\)次多项式\(G(x)\),现在要求它们的卷积\(H(x)=F(x)G(x)\).朴素的暴力实现复杂度为\(O(nm)\),而FFT或NTT可以(在一定的精度范围内或模意......