Ansible架构介绍与安装
Ansible介绍与安装
一、介绍 Ansible
- 什么是 Ansible?
- Ansible是一款自动化运维工具,其主要功能是帮助运维实现IT工作的自动化、降低人为操作失误、提高业务自动化率、提升运维工作效率。
- 实现了批量系统配置、批量程序部署、批量运行命令等功能。
- ansible puppet saltstack 主流的三种。
- ansible 自动化运维工具 被红帽收购 阿里巴巴在用saltstack python开发。
- 无客户端,只需安装SSH、Python即可。
- 支持Windows,但仅支持客户端,服务端必须是Linux系统。
- 基于OpenSSH通信,底层基于SSH协议(Windows基于PowerShell)。
- 幂等性:允许重复执行N次,没有变化时,只会执行第一次。
- 什么是自动化?
- 自动化是指将IT运维中日常的、大量的重复性工作自动化,把手工执行的工作,通过梳理分析,进行逻辑分解,借助工具转为自动化操作。
- 架构图
- Ansible:核心
- Core Modules:核心模块,Ansible自带的模块。
- Custom Modules:自定义模块,上途中错写成Costome,如果核心模块不足以完成某种功能,可以自行添加自定义模块(支持现在主流的大部分编程语言,甚至于shell)
- Plugins:插件,支持使用插件的方式对ansible本身的功能进行扩展,模块是用来实现任务的,增强ansible平台自己的功能就需要使用插件(loggin插件记录日志,email插件发送邮件),其中最常用的是:连接插件(Connectionr Plugins)ansible基于连接插件连接到各个主机上,虽然默认情况下ansible使用ssh连接到各个主机上,但它还支持其它的连接方法。
- Host Inventory:主机群,主机清单,定义ansible管理的主机,还可以存放一下针对不同主机的变量,也可以写入主机的用户名和密码
- Playbooks:ansible的任务配置文件,将多个任务定义在剧中本,由ansible自动执行
- Ansible工作原理:把我们执行的命令翻译为shell命令,通过openssh拷贝到目标主机 /root/.ansible/tmp/下,然后再执行,执行完成后删除tmp文件
二、 安装 Ansible
5. 控制节点
- 控制节点应是Linux或UNIX系统。不支持将Windows用作控制节点,但Windows系统可以是受管主机。
- 控制节点需要安装Python3(版本3.5或以上)或Python2(版本2.7或以上)。
- 安装
安装 Ansible文档连接
# 提供yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo# 安装
[root@hhr ~]# yum -y install epel-release
[root@hhr ~]# yum -y install ansible# 查看版本信息
[root@hhr ~]# ansible --version
ansible 2.9.23config file = /etc/ansible/ansible.cfg //配置文件configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] //配置模块搜索路径ansible python module location = /usr/lib/python3.6/site-packages/ansibleexecutable location = /usr/bin/ansiblepython version = 3.6.8 (default, Dec 5 2019, 15:45:45) [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)]
三、 Ansible的简单使用
1. Ansible
- –version 显示版本
- -v --verbose 详细信息
- -a ‘Arguments’, --args=‘Arguments’ 命令行参数
- -m NAME, --module-name=NAME 执行模块的名字,默认使用 command 模块,所以如果是只执行单一命令可以不用 -m参数
- -i PATH, --inventory=PATH 指定库存主机文件的路径,默认为/etc/ansible/hosts.
- -u Username, --user=Username 执行用户,使用这个远程用户名而不是当前用户
- -U --sud-user=SUDO_User sudo到哪个用户,默认为 root
- -k --ask-pass 登录密码,提示输入SSH密码而不是假设基于密钥的验证
- -K --ask-sudo-pass 提示密码使用sudo
- -s --sudo sudo运行
- -S --su 用 su 命令
- -l --list 显示所支持的所有模块
- -s --snippet 指定模块显示剧本片段
- -f --forks=NUM 并行任务数。NUM被指定为一个整数,默认是5。 #ansible testhosts -a “/sbin/reboot” -f 10 重启testhosts组的所有机器,每次重启10台
- -private-key=PRIVATE_KEY_FILE 私钥路径,使用这个文件来验证连接
all 针对hosts 定义的所有主机执行 - -M MODULE_PATH, --module-path=MODULE_PATH 要执行的模块的路径,默认为/usr/share/ansible/
- -o --one-line 压缩输出,摘要输出.尝试一切都在一行上输出。
- -t Directory, --tree=Directory 将内容保存在该输出目录,结果保存在一个文件中在每台主机上。
- -B 后台运行超时时间
- -b, –become 代替旧版的sudo 切换
- -P 调查后台程序时间
2. user 模块
- name:指定用户名。
- createhome:是否创建家目录 yes|no。
- system:是否为系统用户。
- remove:当state=absent时,remove=yes则表示连同家目录一起删除,等价于userdel -r。
- state:是创建还是删除。(present,absent)
- shell:指定用户的shell环境。
- generate_ssh_key:是否为相关用户生成SSH密钥。 这不会覆盖现有的SSH密钥。
- ssh_key_bits:可选择指定要创建的SSH密钥中的位数。
- ssh_key_passphrase:设置SSH密钥的密码。 如果没有提供密码,SSH密钥将默认没有密码。
- ssh_key_file:指定SSH密钥文件名(可选)。 如果这是一个相对的文件名,那么它将是相对于用户的主目录。
- ssh_key_type:指定要生成的SSH密钥的类型(可选)。 可用的SSH密钥类型将取决于目标主机上的实现。
[root@hhr ~]# ansible localhost -m user -a "name=hhr state=present "
localhost | CHANGED => {"changed": true,"comment": "","create_home": true,"group": 1001,"home": "/home/hhr","name": "hhr","shell": "/bin/bash","state": "present","system": false,"uid": 1001
3. ping模块
[root@hhr ~]# ansible -m ping localhost
localhost | SUCCESS => {"changed": false,"ping": "pong"
}
四、Ansible、SaltStack、Puppet的区别
名称 | Ansible | SaltStack | Puppet |
---|---|---|---|
开发语言 | Python | Python | Ruby |
客户端 | 无 | 有 | 有 |
二次开发 | 支持 | 支持 | 不支持 |
架构 | 无Client | C/S | C/S |
加密方式 | OpenSSH | AES加密 | 标准SSL协议 |
协议 | SSH | SSH/ZeroMQ/RAET | HTTP |
配置文件格式 | YAML | YAML | Ruby语法格式 |
命令执行 | 支持 | 支持 | 不支持 |
适用于 | 小型公司 | 中小型公司 | 大规模集群 |
Ansible架构介绍与安装相关推荐
- ansible的介绍与安装
Ansible的介绍与安装 文章目录 Ansible的介绍与安装 一.什么是ansible 二.ansible优点 三.ansible管理方式 四.ansible系统架构 五.ansible任务执行模 ...
- Kafka系列一之架构介绍和安装
Kafka架构介绍和安装 写在前面 还是那句话,当你学习一个新的东西之前,你总得知道这个东西是什么?这个东西可以用来做什么?然后你才会去学习它,使用它.简单来说,kafka既是一个消息队列,如今,它也 ...
- Ansible简单介绍及安装部署详解
ansible简单介绍 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置. ...
- 运维自动化之---ansilbe运维自动化和ansible架构介绍(1)
运维自动化的发展历程 1.自动化运维应用场景 1.1云计算运维工程师核心职能 运维相关的工具 Podman是用来替代docker的工具 1.2 运维职业的发展路线 目标::一切皆自动化 1.3 企业实 ...
- LNMP基础架构介绍与安装
1.LNMP架构介绍 LNMP==Linux+Nginx+Mysql+PHP nginx:省资源,省cpu,所以在高并发时能够处理更多的请求,高端能达到3万到5万的并发量. nginx和LAMP不 ...
- 【HCIA-cloud】【3】服务器虚拟化之计算资源管理:FusionCompute的架构介绍与安装、使用iso方式安装CNA、VRM简介、CNA简介
文章目录 FusionCompute说明 FusionCompute是什么 FusionCompute定位 FusionCompute架构 (CNA.VRM) FusionCompute特点 安装Fu ...
- ansible架构、安装、简单的使用
1.ansible运维工具 1.1 ansible介绍 一款系统开发开源的配置和自动化工具,基于python写成类似于saltstack和Puppet. 基于模块工作的,本身没有批量部署的能力,批量部 ...
- Ansible介绍与安装
Ansible介绍与安装 文章目录 Ansible介绍与安装 介绍 Ansible 什么是 Ansible? Ansible 无需代理 Ansible方式 ansible工作模式 Ansible的作用 ...
- 12.1 LNMP架构介绍;12.2 MySQL安装;12.3-2.4 PHP安装(上下);12.5
扩展: Nginx为什么比Apache Httpd高效:原理篇 http://www.toxingwang.com/linux-unix/linux-basic/1712.html apache和ng ...
最新文章
- jinfo 的相关使用 || 两个经典的参数: -Xms -Xmx
- Java 洛谷 P2089 烤鸡
- Node-RED安装图形化节点dashboard实现订阅mqtt主题并在仪表盘中显示温度
- js获取时间(本周、本季度、本月..)
- hdu 5446 Lucas+中国剩余定理(孙子定理)+按位乘
- 求一个联想扬天M4680N BIOS升级软件
- 实景三维数据在高速公路中的应用
- 数字金额转化为中文大写
- 我们为什么存在于三维空间而不是四维空间
- 【技术答疑】Swarm BZZ常见技术问题解答
- 苹果4怎么越狱_什么是刷机?什么是越狱?刷机和越狱是一回事吗?
- 【PAT甲级 模拟 测试点0、3、4、5、7、8分析】1026 Table Tennis (30 分)
- 第一类和第二类曲面积分的转换
- 域适应(Domain Adaptation)综述
- alter table *** add constraint *** 用法
- CFileDialog过滤的用法
- 接口测试 | 如何高效管理接口文档
- Linux上安装和卸载Redis实例教程
- 清风算法对seo不是打击而是好事
- 傅里叶级数与傅里叶变换_Part3_周期为2L的函数展开为傅里叶级数