Ansible简介

Ansible 是一种常用的自动运维化工具,基于 python 开发,分布式,无需客户端,轻量级,配置语言采用 YAML。

  1. 模块化:调用特定的模块,完成特殊的任务。
    2.Paramiko (python 对 ssh 的实现),PyYaml,jinja2 (模块语言) 三个关键模块。
  2. 支持自定义模块,可使用任何编程语言写模块。
  3. 基于 python 语言实现。
  4. 部署简单,基于 python 和 SSH (默认已安装),agentless,无需代理不依赖 KPI (无需 SSL)。
  5. 安全,基于 OpenSSH
  6. 幂等性:一个任务执行一次和执行 n 遍效果一样,不因重复执行带来意外情况。
  7. 支持 playbook 编排任务,YAML 格式,编排任务,支持丰富的数据结构。
  8. 较强大的多层解决方案 role。

Ansible 的作用目标:

  1. 自动化部署 APP
  2. 自动化管理配置项
  3. 自动化的持续交付
  4. 自动化的云服务管理

Ansible 的架构:

Ansible简介

Ansible 的工作原理:

Ansible简介

Ansible 命令执行来源:

1> USER,普通用户,即 SYSTEM ADMINISTRATOR
2> CMDB(配置管理数据库) API 调用
3> PUBLIC/PRIVATE CLOUD API 调用 (公有私有云的 API 接口调用)
4> USER-> Ansible Playbook -> Ansibile

利用 ansible 实现管理的方式:

1> Ad-Hoc 即 ansible 单条命令,主要用于临时命令使用场景
2> 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 不能做为主控端 ansible 不是服务,不会一直启动,只是需要的时候启动

一:Ansible 的安装

yum install -y epel-release
安装epel源,建议使用下方阿里YUM
rm  -rf /etc/yum.repos.d/*
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install -y ansible

检测部署是否完成

rpm -ql ansible   列出所有文件
rpm -qc ansible   查看配置文件
ansible --help    查看ansible帮助
ansible-doc -l    看所有模块(A10,华为,docker,EC2,aws等等广大厂商设备)

ansible-doc -s yum
看yum模块,了解其功能
install (present' or ', latest'), or remove (' or `removed')
yum list
Package name
enablerepo

二:免密方式登陆(可选)

ssh-keygen
ssh-copy-id 目标IP地址
推送公钥

三:Ansible基础

3.1:定义主机清单

vim /etc/ansible/hosts
添加到文件最下面
host1
host2
host3
由于本人做了域名解析所以添加的是 host1、host2 未做解析的话添加IP即可

Ansible简介

3.2:测试连通性

ansible host1 -m ping
测试host1连通性
-m 指定模块。什么功能
ping只是其中一个模块。还有shell,yum等等
简洁输出
ansible host1 -m ping  -o

Ansible简介

Ansible简介

3.3:know_hosts

增加用户名选项,增加密码选项

Ansible简介

四:请注意ping和ssh

ping ICMP:网际消息管理协议

关闭host1主机的sshd进程,进行ping连通性测试。

再使用ansible对host1进行联通测试时,却是失败的。

结论ansible的ping,是探测ssh程序是否连接。不是icmp协议

ansible host1 -m ping -u root -k

Original: https://www.cnblogs.com/Jqazc/p/16731771.html
Author: 我真的兔了
Title: Ansible简介

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578399/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • qsort的cmp函数理解

    近期频繁使用qsort函数,但是对于cmp函数却一直不太熟悉,现用现查。故写一篇小笔记记录一下。 函数原型: void qsort(void *base,size_t NumEle…

    Linux 2023年6月8日
    062
  • Linux常用扩展

    目录 ~ ? * [] {} 1. ~ 代表当前用户的home目录 pwd ~$ /home/user/ ls ~$ a touch ~/b ls ~$ a b ~ 等于/home…

    Linux 2023年6月7日
    072
  • CentOS 6 安装并配置 MySQL 5.6

    1. 添加 MySQL Yum 存储库 将MySQL Yum存储库添加到系统的存储库列表中; 1.1 到MySQL官网下载MySQL Yum存储库(https://dev.mysq…

    Linux 2023年6月13日
    087
  • 字符设备驱动

    1.字符设备驱动概述 Linux用户空间与内核空间之间的虚拟内存是分开的,用户空间不能直接写入内核空间,如果用户空间和内核空间需要传递数据就需要字符设备驱动。 2.结构体以及函数介…

    Linux 2023年6月8日
    0126
  • Spring5 学习笔记

    学习地址: B站-动力节点 个人代码: GitHub Spring 概述 1.1 Spring 简介 Spring Framework 是一个使用Java开发的、轻量级的、开源框架…

    Linux 2023年6月14日
    083
  • echarts属性的设置大全(完整大全)

    1. 全图默认背景  &amp…

    Linux 2023年6月13日
    065
  • Java 技术栈中间件优雅停机方案设计与实现全景图

    欢迎关注公众号:bin的技术小屋,阅读公众号原文 本系列 Netty 源码解析文章基于 4.1.56.Final 版本 本文概要 在上篇文章 我为 Netty 贡献源码 | 且看 …

    Linux 2023年6月6日
    0137
  • linux神器sed快速入门,不好用你打我!

    为什么要学习sed sed(Stream EDitor)被誉为Linux三剑客之一,负责过滤和转换文本,功能灵活又强大,搭配正则表达式更是如虎添翼。 如果你需要向1000行文本中的…

    Linux 2023年6月7日
    076
  • shell生成指定长度的随机数

    生成指定长度是随机数 8位纯数字的随机数 tr -cd ‘0-9’ 使用/dev/urandom而不是/dev/random是因为后者比较慢。 Original: https://…

    Linux 2023年5月28日
    099
  • 一维热传导方程的回焊炉子炉温模型

    赛题链接 论文链接 1. 有限差分方法 参考 1.1 一阶微分 由泰勒公式: 对上式变形即可以得到 一阶微分的向前差分公式: 将上式中的h用-h替代,则可以得到 一阶微分的向后差分…

    Linux 2023年6月14日
    0101
  • Ajax

    前戏 概念 异步提交,局部刷新 最大的优点是在页面不刷新的情况下可以与后端进行数据交互 用户注册无需点击按钮内部也可完成数据交互 同步交互:客户端发出一个请求后,需要等待服务器响应…

    Linux 2023年6月7日
    068
  • boot issue

    Q:生产过程中不小心把 boot文件删除了 ,或者升级kenerl时发现版本不兼容,需要回退,此时没有快照备份情况如何操作? A:boot 主要文件是内核和grub引导文件 1.进…

    Linux 2023年6月6日
    0108
  • .htaccess文件解析漏洞

    前言 htaccess文件(或者”分布式配置文件”),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的…

    Linux 2023年6月13日
    073
  • 使用JMeter和Zabbix进行压力测试

    Zabbix JMeter 目标 reference Zabbix Zabbix区分探针端、服务端、数据库、WEB前端等多个组件,如果你是在企业内使用,尽量使用运维同学搭建好的环境…

    Linux 2023年6月6日
    086
  • MTSP问题的简单介绍

    1. TSP问题与MTSP问题 1.1 TSP与MTSP问题的介绍: TSP:是指旅行家(1名)要旅行n个城市,要求各个城市经历且仅经历一次然后回到出发城市,并要求所走的 路程最短…

    Linux 2023年6月14日
    0149
  • PyTorch 介绍 | LEARN THE BASICS

    大多数机器学习流程都包括数据、创建模型、优化模型参数,以及保存训练模型工作。该教程向你介绍一个在PyTorch上实现的完整的机器学习工作流,并提供了了解这些概念详细信息的链接。 我…

    Linux 2023年6月16日
    0129
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球