Ansible介绍与安装

自动化运维工具Ansible

1.Ansible简介

1.1 什么是Ansible

Ansible是一款自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
Ansible是分布式,无需客户端,轻量级,配置语法使用 YMAL 及 Jinja2模板语言,更强的远程命令执行操作。
Ansible工具的目标有这么几项:自动化部署APP;自动化管理配置项;自动化的持续交互;自动化的(AWS)云服务管理。所有的这几个目标从本质上来说都是在一个台或者几台服务器上,执行一系列的命令而已。通俗的说就是批量的在远程服务器上执行命令 。最主要的是它是基于 paramiko 开发的。这个paramiko是什么呢?它是一个纯Python实现的ssh协议库。因此fabric和ansible还有一个共同点就是不需要在远程主机上安装client/agents,因为它们是基于ssh来和远程主机通讯的

1.2Ansible的特点

  • 跨平台支持:Ansible 提供Linux、Windows、UNIX和网络设备的无代理支持,适用于物理、虚拟、云和容器环境。
  • 人类可读的自动化:Ansible Playbook采用YAML文本文件编写,易于阅读,有助于确保所有人都能理解它们的用途。
  • 完美描述应用:可以通过 Ansible Playbook进行每种更改,并描述和记录应用环境的每一个方面。
  • 轻松管理版本控制:Ansible Playbook和项目是纯文本。它们可以视作源代码,放在现有版本控制系统中。
  • 支持动态清单:可以从外部来源动态更新 Ansible 管理的计算机列表,随时获取所有受管服务器的当前正确列表,不受基础架构或位置的影响。
  • 编排可与其他系统轻松集成:能够利用环境中现有的 HP SA、Puppet、Jenkins、红帽卫星和其他系统,并且集成到 Ansible 工作流中。
  • 轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可
  • 批量任务执行可以写成脚本,而且不用分发到远程就可以执行
  • 使用python编写,维护更简单,ruby语法过于复杂

1.3 Ansible的工作模式

Ansible 通过本身集成的非常丰富的模块可以实现各种管理任务,Ansible只是提供一种框架。主要包括:

  • 连接插件connection plugins:负责和被监控端实现通信;
  • host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
  • 各种模块核心模块、command模块、自定义模块;
  • 借助于插件完成记录日志邮件等功能;
  • playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

Ansible架构图
在这里插入图片描述

  • Ansible核心:是指执行任务的程序,主要有ansible命令和ansible-playbook命令,前者执行一些临时性的命令,后者根据编排好的剧本可以执行非常复杂的任务
  • Inventory: 主机清单,里面包含了要执行任务的服务器ip,执行任务时需要制定主机清单,不指定时使用默认配置,命令行中使用-i参数指定
  • Modules: 模块,ansible提供了相当多的内置模块,比如command模块可以支持在远程服务器上执行命令行,copy模块可以拷贝本地文件到远程服务器等。模块也分为三类:核心模块、扩展模块、自定义模块
  • Playbook: 剧本,将所需要执行的任务通过配置文件的方式保存下来,我们称该配置文件为剧本。ansible使用yaml格式编写剧本。ansible-playbook是专门执行剧本的命令

1.3Ansible任务执行模式

Ansible 系统由控制主机对被管节点的操作方式可分为两类,即adhoc和playbook

  • ad-hoc模式(点对点模式)   使用单个模块,支持批量执行单条命令。ad-hoc
    命令是一种可以快速输入的命令,而且不需要保存起来的命令。就相当于bash中的一句话shell。

  • playbook模式(剧本模式)
      是Ansible主要管理方式,也是Ansible功能强大的关键所在。playbook通过多个task集合完成一类功能,如Web服务的安装部署、数据库服务器的批量备份等。可以简单地把playbook理解为通过组合多条ad-hoc操作的配置文件。

在这里插入图片描述

1.4Ansible工作流程

在这里插入图片描述

2Ansible安装配置

2.1Ansible安装

  • Ansible的安装部署非常简单,以RPM安装为例,其依赖软件只有Python和SSH,且系统默认均已安装。Ansible的管理端只能是Linux,如RedHat、Debian、CentOS。
  • 操作系统是红帽8.0,Ansible 2.9可以自动使用 platform-python
    软件包,该软件包支持使用Python的系统实用程序。你不需要从 AppStream安装python37或python27软件包。
[root@zhaojie ~]#  yum list installed platform-python
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
已安装的软件包
platform-python.x86_64              3.6.8-23.el8              @anaconda

  1. 通过YUM安装Ansible
[root@zhaojie yum.repos.d]# wget -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
[root@zhaojie yum.repos.d]# ls
Centos-8.repo  CentOS-Base.repo

  1. 安装epel-release源
[root@zhaojie yum.repos.d]# dnf -y install epel-release
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
CentOS-8 - Extras - mirrors.aliyun.com        6.8 kB/s | 1.6 kB     00:00    
导入 GPG 公钥 0x8483C65D:
 Userid: "CentOS (CentOS Official Signing Key) <security@centos.org>"
 指纹: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D
 来自: https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
 .......
导入公钥成功
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                               1/1 
  安装    : epel-release-8-11.el8.noarch                                  1/1 
  运行脚本: epel-release-8-11.el8.noarch                                  1/1 
  验证    : epel-release-8-11.el8.noarch                                  1/1 
Installed products updated.

已安装:
  epel-release-8-11.el8.noarch                                                

完毕!

  1. 安装Ansible
[root@zhaojie ~]# dnf -y install ansible
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
......
已安装:
  ansible-2.9.23-1.el8.noarch            libsodium-1.0.18-2.el8.x86_64        
  python3-babel-2.5.1-5.el8.noarch       python3-bcrypt-3.1.6-2.el8.1.x86_64  
  python3-jinja2-2.10.1-2.el8_0.noarch   python3-jmespath-0.9.0-11.el8.noarch 
  python3-markupsafe-0.23-19.el8.x86_64  python3-paramiko-2.4.3-1.el8.noarch  
  python3-pyasn1-0.3.7-6.el8.noarch      python3-pynacl-1.3.0-5.el8.x86_64    
  sshpass-1.06-9.el8.x86_64             

完毕!

  1. 通过ansible -m setup localhost查看本机信息
[root@zhaojie ~]# ansible -m setup localhost
localhost | SUCCESS => {
    "ansible_facts": {
        "ansible_all_ipv4_addresses": [
            "192.168.25.128",
            "192.168.122.1"
        ],
        "ansible_all_ipv6_addresses": [
            "fe80::871d:6b3a:94aa:aae4"
        ],
        "ansible_apparmor": {
            "status": "disabled"
        },
        "ansible_architecture": "x86_64",
        "ansible_bios_date": "07/29/2019",
        "ansible_bios_version": "6.00",
        "ansible_cmdline": {
            "BOOT_IMAGE": "(hd0,msdos1)/vmlinuz-4.18.0-193.el8.x86_64",
            "crashkernel": "auto",
            "quiet": true,
            "rd.lvm.lv": "rhel/swap",
            "resume": "/dev/mapper/rhel-swap",
            "rhgb": true,
            "ro": true,
            "root": "/dev/mapper/rhel-root"

  1. 通过使用setup模块验证localhost上的ansible_python_version
[root@zhaojie ~]# ansible -m setup localhost|grep python
            "_": "/usr/bin/python3.6"
        "ansible_python": {
            "executable": "/usr/bin/python3.6",
            "type": "cpython",
        "ansible_python_version": "3.6.8",
        "ansible_selinux_python_present": true,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Ansible进行一键安装LNMP(Linux + Nginx + MySQL + PHP)架构,您可以按照以下步骤进行操作: 1. 首先,确保在目标服务器上已经安装Ansible。您可以使用命令`yum install -y ansible`来安装Ansible。 2. 在Ansible的配置文件中,编辑`/etc/ansible/ansible.cfg`,可以根据需要进行自定义配置。 3. 创建一个主机清单文件(hosts),在其中定义您要管理的主机。您可以在该文件中指定主机的IP地址或主机名,并可以将主机分组以便于管理。 4. 准备一个LNMP的Ansible Playbook配置文件,其中包含了安装Nginx、MySQL和PHP的任务配置。在Playbook中,您可以使用Ansible的模块来执行各种操作,如安装软件包、设置配置文件等。您还可以在Playbook中指定变量和条件,以便根据需要进行自定义配置。 5. 运行Ansible Playbook,执行一键安装LNMP。使用命令`ansible-playbook -i hosts playbook.yml`来运行Playbook,其中`hosts`是您之前创建的主机清单文件,`playbook.yml`是您准备的LNMP安装配置文件。 通过执行以上步骤,您可以使用Ansible进行一键安装LNMP架构。Ansible将自动在目标服务器上执行所需的操作,以按照您在Playbook中定义的配置进行LNMP的安装和配置。 请注意,为了确保Ansible能够成功连接到主机并执行任务,您需要确保在目标主机上已经配置了正确的SSH连接,并且您在Ansible的主机清单文件中已经提供了正确的SSH用户名和密码。 引用自:1.1.2安装ansible yum install -y ansible # 安装成功后验证 [root@ops ~ ] # ansible --version ansible 2.9.16 config file = /etc/ansible/ansible.cfg # 默认配置文件目录 configured module search path = ... 引用自:文章目录 一、LNMP架构(ansible)1、LNMP简2、LNMP的组成3、特点4、优点 二、服务工具简述:三、架构1、架构网络配置2、架构结构图3、架构搭建流程图 四、架构部署(ansible)1、ansible自动化运维1、结构详解: 五、ansible的使用配置1.ansible安装**2.ansible文件说明**3.主机清单hosts详解4、ansible使用的架构5、模块详解 六、架构流程ansible)1、backup2、nfs3、数据库(mariadb)4、web5、prometheus 七、实现的状态1、实现的服务(bbs) 引用自:1、结构详解: 1)#Core Modules: 核心模块,Ansible自带的模块。 2)#Custom Modules: 自定义模块,如果核心模块不足以完成某种功能,可以自行添加自定义模块(支持现在主流的大部分编程语言,甚至于shell) 3)#Plugins: 插件,支持使用插件的方式对ansible本身的功能进行扩展,模块是用来实现任务的,增强ansible平台自己的功能就需要使用插件(loggin插件记录日志,email插件发送邮件),其中最常用的是:连接插件(Connectionr Plugins)ansible基于连接插件连接到各个主机上,虽然默认情况下ansible使用ssh连接到各个主机上,但它还支持其它的连接方法。 4)#Host Inventory: 主机群,主机清单,定义ansible管理的主机,还可以存放一下针对不同主机的变量,也可以写入主机的用户名和密码 5)#Playbooks: ansible的任务配置文件,将多个任务定义在剧中本,由ansible自动执行 五、ansible的使用配置 1.ansible安装

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值