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/611180/

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

(0)

大家都在看

  • mysql8使用tmpfs内存磁盘当内存数据库的配置方法

    内存关系数据库没有找到开源好用的,很多都是商用。虽然mysql有memory引擎,但写是整体锁表,没法用。 一直想将mysql放入内存中,搜索n次资料,没找到合适的,可能之前思路不…

    数据库 2023年6月14日
    074
  • Javascript基础

    作者导言: 引用偶像刘德华的一句话 “学到的就要教人,赚到的就要给人”! 以下是关联的web前端基础知识文章,通过这些文章,您既可以系统地学习和了解这些知识…

    数据库 2023年6月14日
    099
  • 20 行代码!带你快速构建基础文本搜索引擎 ⛵

    💡 作者:韩信子@ShowMeAI📘 机器学习实战系列:https://www.showmeai.tech/tutorials/41📘 深度学习实战系列:https://www.s…

    数据库 2023年6月14日
    073
  • Vue3提高效率小技巧

    问题1:Vue3使用了setup API,无法访问到this,虽然提供了getCurrentInstance API,但访问全局变量时感觉比Vue2使用方式更繁琐了,因此想了个捷径…

    数据库 2023年6月11日
    080
  • Shell文件属性的判断与比较

    Shell支持对文件属性的判断,常用的文件属性操作符很多,如下表所示。更多文件属性操作符可以参考命令帮助手册man test [root@centos7~]#…

    数据库 2023年6月14日
    080
  • 我设计数据库常用的几个原则

    以MySQL5.7为例,在一个项目中的数据库schema中建表 〇、建库 统一字符集和排序规则 规则 库的默认字符集选择utf8mb4,表、字段默认上级 库的排序规则选择utf8m…

    数据库 2023年6月9日
    084
  • 工具 | 常用 PostgreSQL 预防数据丢失方案

    作者:张连壮 PostgreSQL 研发负责人从事多年 PostgreSQL 数据库内核开发,对 Citus 有非常深入的研究。 PostgreSQL 本身不具备数据闪回和数据误删…

    数据库 2023年5月24日
    067
  • 2_爬豆瓣电影_ajax动态加载

    什么是 AJAX ? AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 AJAX = Asynchronous JavaScript and XML(AJA…

    数据库 2023年6月11日
    090
  • Python–paramiko

    paramiko包含两个核心组件:SSHClient和SFTPClient。 SSHClient的作用类似于Linux的ssh命令,是对SSH会话的封装,该类封装了传输(Trans…

    数据库 2023年6月9日
    071
  • 数据类型拓展

    public class Demo03 { public static void main(String[] args) { //整数拓展 :进制 二进制0b 十进制 八进制0 十…

    数据库 2023年6月11日
    058
  • 一文说透 MySQL JSON 数据类型(收藏)

    JSON 数据类型是 MySQL 5.7.8 开始支持的。在此之前,只能通过字符类型(CHAR,VARCHAR 或 TEXT )来保存 JSON 文档。 相对字符类型,原生的 JS…

    数据库 2023年5月24日
    065
  • Python第五十一天 python2升级为python3

    Python第五十一天 python2升级为python3 公司使用的生产环境系统是centos7,所以这里以centos7系统为基础,讲解将python2升级为python3的方…

    数据库 2023年6月9日
    060
  • mysql 常用的命令2

    找出每个部门,不同工作岗位的最高薪资。 mysql> select deptno,job,max(sal) from emp group by deptno,job; +&#…

    数据库 2023年5月24日
    064
  • python_numpy数组入门

    NumPy 数组的维数称为秩(rank),秩就是轴的数量,即数组的维度,一维数组的秩为 1,二维数组的秩为 2,以此类推。 在 NumPy中,每一个线性的数组称为是一个轴(axis…

    数据库 2023年6月11日
    083
  • Docker简介

    1.什么是Docer 在计算机的世界中,容器拥有一段漫长且传奇的历史。容器与管理程序虚拟化 (hypervisor virtualization,HV)有所不同,管理程序虚拟化通过…

    数据库 2023年6月14日
    079
  • 对炒股看法

    1. 自己的炒股情况 2017 年左右接触炒股, 陆续入迷. 个人情况输的多. 主要输在阅历浅, 策略不连贯, 心态不稳. 期间翻阅了大量书籍, 学到了很多, 开拓了眼界. 真的是…

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