Ansible介绍与安装


一、介绍 Ansible

  1. 什么是 Ansible?

    • Ansible是一款自动化运维工具,其主要功能是帮助运维实现IT工作的自动化、降低人为操作失误、提高业务自动化率、提升运维工作效率。
    • 实现了批量系统配置、批量程序部署、批量运行命令等功能。
    • ansible puppet saltstack 主流的三种。
    • ansible 自动化运维工具 被红帽收购 阿里巴巴在用saltstack python开发。
    • 无客户端,只需安装SSH、Python即可。
    • 支持Windows,但仅支持客户端,服务端必须是Linux系统。
    • 基于OpenSSH通信,底层基于SSH协议(Windows基于PowerShell)。
    • 幂等性:允许重复执行N次,没有变化时,只会执行第一次。
  2. 什么是自动化?
  • 自动化是指将IT运维中日常的、大量的重复性工作自动化,把手工执行的工作,通过梳理分析,进行逻辑分解,借助工具转为自动化操作。
  1. 架构图
  • 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或以上)。
  1. 安装
    安装 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架构介绍与安装相关推荐

  1. ansible的介绍与安装

    Ansible的介绍与安装 文章目录 Ansible的介绍与安装 一.什么是ansible 二.ansible优点 三.ansible管理方式 四.ansible系统架构 五.ansible任务执行模 ...

  2. Kafka系列一之架构介绍和安装

    Kafka架构介绍和安装 写在前面 还是那句话,当你学习一个新的东西之前,你总得知道这个东西是什么?这个东西可以用来做什么?然后你才会去学习它,使用它.简单来说,kafka既是一个消息队列,如今,它也 ...

  3. Ansible简单介绍及安装部署详解

    ansible简单介绍 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置. ...

  4. 运维自动化之---ansilbe运维自动化和ansible架构介绍(1)

    运维自动化的发展历程 1.自动化运维应用场景 1.1云计算运维工程师核心职能 运维相关的工具 Podman是用来替代docker的工具 1.2 运维职业的发展路线 目标::一切皆自动化 1.3 企业实 ...

  5. LNMP基础架构介绍与安装

    1.LNMP架构介绍 LNMP==Linux+Nginx+Mysql+PHP  nginx:省资源,省cpu,所以在高并发时能够处理更多的请求,高端能达到3万到5万的并发量.  nginx和LAMP不 ...

  6. 【HCIA-cloud】【3】服务器虚拟化之计算资源管理:FusionCompute的架构介绍与安装、使用iso方式安装CNA、VRM简介、CNA简介

    文章目录 FusionCompute说明 FusionCompute是什么 FusionCompute定位 FusionCompute架构 (CNA.VRM) FusionCompute特点 安装Fu ...

  7. ansible架构、安装、简单的使用

    1.ansible运维工具 1.1 ansible介绍 一款系统开发开源的配置和自动化工具,基于python写成类似于saltstack和Puppet. 基于模块工作的,本身没有批量部署的能力,批量部 ...

  8. Ansible介绍与安装

    Ansible介绍与安装 文章目录 Ansible介绍与安装 介绍 Ansible 什么是 Ansible? Ansible 无需代理 Ansible方式 ansible工作模式 Ansible的作用 ...

  9. 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 ...

最新文章

  1. jinfo 的相关使用 || 两个经典的参数: -Xms -Xmx
  2. Java 洛谷 P2089 烤鸡
  3. Node-RED安装图形化节点dashboard实现订阅mqtt主题并在仪表盘中显示温度
  4. js获取时间(本周、本季度、本月..)
  5. hdu 5446 Lucas+中国剩余定理(孙子定理)+按位乘
  6. 求一个联想扬天M4680N BIOS升级软件
  7. 实景三维数据在高速公路中的应用
  8. 数字金额转化为中文大写
  9. 我们为什么存在于三维空间而不是四维空间
  10. 【技术答疑】Swarm BZZ常见技术问题解答
  11. 苹果4怎么越狱_什么是刷机?什么是越狱?刷机和越狱是一回事吗?
  12. 【PAT甲级 模拟 测试点0、3、4、5、7、8分析】1026 Table Tennis (30 分)
  13. 第一类和第二类曲面积分的转换
  14. 域适应(Domain Adaptation)综述
  15. alter table *** add constraint *** 用法
  16. CFileDialog过滤的用法
  17. 接口测试 | 如何高效管理接口文档
  18. Linux上安装和卸载Redis实例教程
  19. 清风算法对seo不是打击而是好事
  20. 傅里叶级数与傅里叶变换_Part3_周期为2L的函数展开为傅里叶级数

热门文章

  1. Jenkins 参数化构建插件:Active Choices 文档
  2. AI律师出道,「倒贴」100万美元帮人类打官司
  3. Codeforces Round #723 (Rated for Div 2)
  4. 【数据库课程设计】课程内容概要
  5. 使用双视场测量工件长度尺寸
  6. 069_ublock
  7. ForeSpider采集教程:如何采集图片及链接地址
  8. NVR、DVR的区别
  9. postgres--流复制
  10. Python numpy.vander函数方法的使用