ansible系列(1)--ansible基础
1. ansible概述
Ansible
是一个 IT 自动化的“配置管理”工具,自动化主要体现在Ansible
集成了丰富模块,以及强大的功能组件,可以通过一个命令行完成一系列的操作。进而能减少我们重复性的工作,以提高工作的效率。- 创始人,
Michael DeHaan
(Cobbler
与Func
的作者)。 - 2015-10-17,
Red Hat
宣布收购。
1.1 ansible的功能
- 批量执行远程命令,可以对N多台主机同时进行命令的执行。
- 批量配置软件服务,可以进行自动化的方式配置和管理服务。
- 实现软件开发功能,
jumpserver
底层使用ansible
来实现的自动化管理。 - 编排高级的IT任务,
Ansible
的Playbook
是一门编程语言,可以用来描绘一套 IT 架构。
1.2 ansible的特性
- 容易学习:无代理,基于
SSH
实现,不像saltstack
既要学客户端与服务端,还需要学习客户端与服务端中间通讯协议; - 操作灵活:
Ansible
有较多的模块,提供了丰富的功能、playbook
则提供类似于编程语言的复杂功能; - 简单易用:体现在
Ansible
一个命令可以完成很多事情; - 安全可靠:因为
Ansible
使用了SSH
协议进行通讯,既稳定也安全; - 移植性高:可以将写好的
playbook
拷贝至任意机器进行执行; - 幂等性:一个任务执行1遍和执行n遍效果一样,不会因为重复执行带来意外情况;
1.3 ansible的架构
ANSIBLE PLAYBOOKS
:任务剧本(任务集),编排定义Ansible
任务集的配置文件,由Ansible
顺序依次执行,通常是JSON
格式的YAML
文件;INVENTORY
:Ansible
管理主机的清单/etc/anaible/hosts
;MODULES
:Ansible
执行命令的功能模块,多数为内置核心模块,也可自定义;PLUGINS
:模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等,该功能不常用;API
:供第三方程序调用的应用程序编程接口;Ansible
主要操作对象:HOSTS
主机,主机组和NETWORKING
网络设备;
利用ansible实现管理的方式:
Ad-Hoc
即执行单条的ansible命令,主要用于临时命令使用场景;
Ansible-playbook
主要用于长期规划好的,大型项目的场景,需要有前提的规划;
执行过程:
将已有编排好的任务集写入
Ansible-Playbook
通过
ansible-playbook
命令分拆任务集至逐条ansible
命令,按预定规则逐条执行。
1.4 ansible注意事项
- 执行
ansible
的主机一般称为主控端,中控,master
或堡垒机; - 主控端
Python
版本需要2.6或以上; - 被控端
Python
版本小于2.4需要安装python-simplejson
; - 被控端如开启
SELinux
需要安装libselinux-python
; windows
不能做为主控端;- 建议使用
ssh
的秘钥验证方式管理被控主机;
ansible系列(1)--ansible基础的更多相关文章
- Ansible系列(五):playbook应用和roles自动化批量安装示例
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- Ansible系列(七):执行过程分析、异步模式和速度优化
本文目录:1.1 ansible执行过程分析1.2 ansible并发和异步1.3 ansible的-t选项妙用1.4 优化ansible速度 1.4.1 设置ansible开启ssh长连接 1.4. ...
- Ansible系列(四):playbook应用和roles自动化批量安装示例
Ansible系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html playbook是ansible实现批量自动化最重要的手段.在其中可以使用变 ...
- Ansible系列(二):选项和常用模块
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- Ansible系列(一):基本配置和使用
本文目录:1.1 安装Ansible1.2 配置Ansible 1.2.1 环境配置 1.2.2 SSH互信配置 1.2.3 简单测试1.3 inventory Ansible是一种批量.自动部署工具 ...
- Ansible系列(六):各种变量定义方式和变量引用
本文目录:1.1 ansible facts1.2 变量引用json数据的方式 1.2.1 引用json字典数据的方式 1.2.2 引用json数组数据的方式 1.2.3 引用facts数据1.3 设 ...
- Ansible系列(三):YAML语法和playbook写法
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- Ansible系列(六):循环和条件判断
本文目录:1. 循环 1.1 with_items迭代列表 1.2 with_dict迭代字典项 1.3 with_fileglob迭代文件 1.4 with_lines迭代行 1.5 with_ne ...
- Ansible第一章:基础认识--小白博客
ansible Ansible:Ansible的核心程序Host Lnventory:记录了每一个由Ansible管理的主机信息,信息包括ssh端口,root帐号密码,ip地址等等.可以通过file来 ...
- Ansible系列(五):各种变量定义方式和变量引用
Ansible系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1.1 ansible facts facts组件是用来收集被管理节点信息的 ...
随机推荐
- Python爬虫爬取爱奇艺电影片库首页
1 import time 2 import traceback 3 import requests 4 from lxml import etree 5 import re 6 from bs4 i ...
- C++设计模式 -中介者模式(Mediator)
接口隔离模式 在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题.甚至根本无法实现.采用添加一层间接(稳定)接口,来隔离本来互相紧密关联的接口是一种常见的解决方案. 典型模式 Facade P ...
- MySQL数据过滤和搜索
操作符 AND操作符 mysql> SELECT prod_id,prod_price,prod_name FROM products WHERE vend_id=1003 AND prod_p ...
- 实际项目中如何使用Git做分支管理
前言 Git是一种强大的分布式版本控制系统,在实际项目开发中使用Git进行分支管理是非常常见的做法,因为它可以帮助团队高效的协作和管理项目的不同版本,今天我们来讲讲在实际项目中最常用的Git分支管理策 ...
- #dp,齐肯多夫定理#CF126D Fibonacci Sums
题目 \(T(T\leq 10^5)\) 组数据,每次给定数字 \(n(n\leq 10^{18})\), 问有多少种方案将 \(n\) 分解成若干个互不相同的斐波那契数 分析 如果找到一个方案使得所 ...
- #Tarjan,SPFA,差分约束系统#BZOJ 2330 AcWing 368 银河
题目 分析 首先这明显是一道差分约束题,但是无解的情况确实比较恶心, 考虑它的边权为0或1,无解当且仅当某个强连通分量内的边至少一条边边权为1, 那么用有向图的Tarjan缩点后跑SPFA就可以了 代 ...
- HMS Core机器学习服务,高效助力跨语种沟通
5月24日, HUAWEI Developer Day(简称HDD)线上沙龙·创新开发专场活动成功举办.HMS Core机器学习服务(ML Kit)产品经理在会上围绕机器翻译的技术优势.使用场景和接入 ...
- 通过 Traefik Hub 暴露家里的网络服务
Traefik Hub 简介 ️Reference: 你的云原生网络平台 -- 发布和加固你的容器从未如此简单. Traefik Hub 为您在 Kubernetes 或其他容器平台上运行的服务提供一 ...
- HarmonyOS传感器开发指南
HarmonyOS系统传感器是应用访问底层硬件传感器的一种设备抽象概念.开发者根据传感器提供的Sensor接口,可以查询设备上的传感器,订阅传感器数据,并根据传感器数据定制相应的算法开发各类应用, ...
- k8s 深入篇———— docker 是什么[一]
前言 简单的整理一下一些基本概念. 正文 简单运行一个容器: 创建一个容器: docker run -it busybox /bin/bash 然后看下进程: ps -ef 做了一个障眼法,使用的是p ...