从小白到大神之路之学习运维第45天---第三阶段----Anisble自动化IT工具-----( 概述、核心组件、优点、工作原理、centos7 安装方法、在运维工程日常工作中常用命令及示例)

目录

一、ansible 概述

二、Ansible 的核心组件包括:

三、Ansible 的优点包括:

四、Ansible 的工作原理:

五、ansible 企业运用架构图:

六、ansible 安装:

以下是在 Linux 上安装 Ansible 的步骤:

在 Mac 上安装 Ansible:

在 Windows 上安装 Ansible:

七、ansible centos7 安装:

八、ansible 在运维工程日常工作中常用命令及示例:


        这将会把我们定义的 Playbook 运行在名为 webservers的主机上。如果一切顺利,Apache Web 服务器将会被安装在这台主机上。

        这只是一个简单的例子,但它可以帮助你快速了解如何使用 Ansible。要更深入地使用 Ansible,请参阅 Ansible 官方文档,里面有更多的信息可以帮助你入门。

一、ansible 概述

        Ansible 是一个自动化IT 工具,用于自动化部署、配置和管理 T 系统和应用程序。它使用基于 SSH 的远程管理协议和模块化的架构,能够在多个主机上同时运行任务,并且有着简单易学的语法和强大的扩展性。

        Ansible 最初是由 Michael DeHaan 创建的,现在由 Red Hat 公司进行维护和开发。它被广泛应用于 DevOps、云计算、大数据和安全等领域,有助于提高  系统的可靠性、可重复性和自动化程度。

        同时,它还支持各种操作系统,包括Linux、Unix 和 Windows。

二、Ansible 的核心组件包括:

    -Inventory: 用于存储主机列表、组和变量等信息

    -Playbooks: 用于定义一个或多个任务,以及在哪些主机上和以何种顺序运行它们

    -Modules:实现任务的单元,它们可以完成诸如文件传输、软件包安装、配置文件管理、用户管理等任务

    -Roles:包含多个 Playbooks 和任务,以实现复杂的系统配置

    - Ad-Hoc 命令:支持用户在命令行直接运行任务并获取结果

三、Ansible 的优点包括:

1、简单易学的 YAML 语法

2、基于 SSH 的远程管理协议

3、支持各种操作系统和云平台

4、模块化和可扩展

5、支持多种身份验证方法

总之,Ansible 是一个强大而简单的 T 自动化工具,可以大大提高 T 系统的自动化程度和可靠性

四、Ansible 的工作原理:

Ansible 的工作原理可以简要概括为以下四个步骤:

        1.构建 nventory 清单:用户构建一个明确列表,其中包含 Ansible 可以管理的主机和其它设备的详细信息。清单可以被组织成不同的组,从而使相似的主机可以一起管理。

        2.编写 Playbook: Plavbook 是 Ansible 剧本文件,其中包含要在目标主机上运行的任务列表。Playbook 是用基于文本的 YAML 语言编写的,可以执行各种任务,如软件安装、文件传输、用户设置等。Playbook 还可以通过变量和条件来实现任务组合和控制流程。

        3.运行 Ansible: 当用户启动 Ansible 时,它会在远程主机上自动运行特定的 Playbook,根据 Plavbook 中的指令在目标机器上执行任务。Ansible 使用 SSH 协议将命令发送到目标机器上执行。

        4.任务报告和状态监测与更新: Ansible 会将任务执行的日志和状态报告回传给用户,用以确认任务是否成功或者存在异常情况。根据任务执行结果,Ansible 负责更新任务清单和状态,以便下次任务运行时的参考和处理。

        总的来说,Ansible 是使用基于文本的 YAML 文件编写的,它可以自动化执行各种指令,比如软件安装和配置文件部署。Ansible 工具代表了将主机自动化配置的未来方向。通过 Ansible 可以将管理多台主机的复杂任务变得更加简单和高效。

五、ansible 企业运用架构图

以下是一个企业级应用架构图,展示了 Ansible 在企业应用场景中的运用:

从小白到大神之路之学习运维第45天---第三阶段----Anisble自动化IT工具-----( 概述、核心组件、优点、工作原理、centos7 安装方法、在运维工程日常工作中常用命令及示例)_第1张图片

   上述架构图涵盖了企业级 Ansible 环境中的各个组件。Ansible control Machine 是一个运行 Ansible 的主机,通常是一个本地计算机或云服务器。用户可以在该主机上编写和运行 Ansible Plavbooks,管理其它主机。

        Ansible Tower 是一个面向企业的Web 界面,可以实现基于角色的访问控制、自动化任务调度等企业级功能,并与 Ansible Control Machine和 Satellite 集成使用。

        Configuration Management Server 是一个独立于控制机器的服务器,用于存储 Ansible Plavbooks 和配置信息。此服务器还维护与主机相关的变量和状态信息。

        Ansible Satelite 是 Red Hat 提供的一项高级 Entopsise 功能,它添加了多租户和安全包D 等功能,将 Ansible 配置管理扩展至整个企业环境。它允许集中管理私有和公共云基础设施以及虚拟环境,提供了更加安全和可靠的配置管理功能。

        而nisble clients 即为 Anisble 要管理的主机,可以是物理主机、虚拟机或者云上的主机。

        此外,企业级 Ansible 还支持与云供应商集成,例如与 AWS、Azure 和 Google cloud 等云提供商集成使用,以提供更完整的计算资源管理

六、ansible 安装

可以在 Linux、Mac 和 Windows 上安装 Ansible。

以下是在 Linux 上安装 Ansible 的步骤:

      1.更新包管理器:

在 Ubuntu 或 Debian 上:sudo apt update

在 Centos或 RHEL 上:sudo yum update

      2. 安装依赖项:

sudo apt install software-properties-common

      3.添加 Ansible 的 PPA:

sudo apt-add-repository ppaansible/ansible

      4.更新包管理器:

sudo apt update

      5.安装 Ansible:

sudo apt install ansible558

      安装完成后,可以通过以下命令验证 Ansible 是否已成功安装:

ansible --version

如果安装成功,会显示 Ansible 的版本信息。

在 Mac 上安装 Ansible:

1.安装 Homebrew,Homebrew 是 Mac 上的一个包管理器,可以简化软件安装和管理

/bin/bash -c "S(curl -fsSL

https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)'

2.通过 Homebrew 安装 Ansible:

brew install ansible

安装完成后,可以通过以下命令验证 Ansible 是否已成功安装:

ansible --version

在 Windows 上安装 Ansible:

1.安装 WSL (Windows Subsystem for Linux): 可以在 Windows 商店中下载 WSL。

2.安装 Ubuntu 子系统: 可以从 WSL 提供的应用程序商店中下载 Ubuntu。

3.更新 Ubuntu:

sudo apt update

sudo apt upgrade

4.安装 Ansible:

sudo apt install ansible

5.安装后,可以通过以下命令验证 Ansible 是否已成功安装:

ansible --version

以上就是在不同操作系统上安装 Ansible 的一些步骤。在安装完成后,你就可以开始使用 Ansible 进行自动化配置和管理了。

七、ansible centos7 安装

在 Centos 7 上安装 Ansible 的步骤如下:

1.更新包管理器:

sudo yum update

2.安装 EPEL 存储库:

sudo yum install epel-releaset

3.安装 Ansible:

sudo yum install ansible

4.安装完成后,可以通过以下命令验证 Ansible 是否已成功安装:

ansible --version

如果安装成功,会显示 Ansible 的版本信息。

需要注意的是,如果你使用的是新版本的 CentOS 7(如 7. 6

7.7),你需要使用 EPEL 存储库的最新版本,可以使用以下命令将其更新:

sudo yum install  https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

完成更新后,再使用第三步安装 Ansible 即可。另外,如果你想在 centos 7上进行 Ansible 开发,你还需要安装 Python pip 和其他依赖项。你可以使用以下命令进行安装:

sudo yum install python-pip python-devel libffi-devel openssl-devel gccsudo pip install cryptography

然后你就可以在 Centos 7 上使用 Ansible 进行自动化配置和管理了

八、ansible 在运维工程日常工作中常用命令及示例

在日常运维工作中,我们经常使用 Ansible 来管理远程主机。以下是一些常用的 Ansible 命令及示例:

1.Ping 测试远程主机是否可达

使用 ping 模块检查目标主机是否在线,可以检查 SSH 连接是否可用:

ansible all -i host file -m ping

其中,“all表示运行操作所有主机,

'-ihost file表示使用 host file 文件指定主机清单。

2.运行 shell 命令

使用 shell 模块来管理 Linux 上的文件和目录,例如创建目录:

ansible all -i host file -m shell -a 'mkdir /path/to/directoryt'

3.安装软件包

使用 yum 模块安装软件包:

ansible all -i host file -m apt -a "name= state=installed"

4.复制文件

使用 copy 模块将文件复制到远程主机上:

ansible all -i host_file -mcopy -a "src= dest='ts3

5.重启远程主机

使用 reboot 模块重启远程主机:

ansible all -i host file -m reboot

6.使用 Playbook

在 Ansible 中,Playbook 是一组任务列表,可以实现复杂的部署和配置管理。

以下是一个简单的 Playbook 示例,该Playbook 将在所有目标主机上安装 Apache httpd 服务:

- name: Install Apache httpd

      hosts: all

      become: true

      tasks:

      - name: Install Apache httpd

          yum: name=httpd state=installed

      - name: Start Apache httpd

          service: name=httpd state=started

7.使用变量

Ansible 使用变量用于在 Playbook 或任务中存储和传递数据。在 Playbook 中,可以通过以下方式定义变量:

-hosts: all

      vars:

      package_name: apache2

      tasks:

      - name: Install package

      apt: name=ff package name i state=installed

在以上示例中,package_name 是定义的变量,可以通过‘{{package_name }}’的方式在任务中引用。

这些是一些常用的 Ansible 命令和示例,在日常运维工作中使用 Ansible 可以使得管理远程主机更加高效和自动化。

playbook 实例

以下是一个简单的 Ansible Playbook 示例,该 Playbook 用于创建一个名为‘example’的用户,并将其添加到 sudoers文件中:

- name: Create new user and add to sudoers

      hosts: all

      become: true

vars:

      username: example

      password:

      'S6SlyKtH5jS/GgOhluJfV7RdLn8EZuhQj0uwN37UiJdLwSmBvhoj3z3gAm89aBR31G2dbk3RJPSzbrvKzEg9sOSMS5D5mrBl1'

tasks:

- name: Create user

    user:

        name: "{{}username }}"

        password: "{{password }}"

        shell: /bin/bash

        createhome: yes

- name: Add to sudoers

    lineinfile:

      dest: /etc/sudoers

      line:"{{ username}}ALL=(ALL)NOPASSWD:ALL"

         validate: "visudo -cf %s"

         state: present

在以上示例中,Playbook 的第一部分是名称、主机和权限等属性的定义。然后定义了一些变量,包括要创建的用户名‘example’、密码和 shell。最后,在任务中,先使用‘user’ 模块创建新用户,然后使用‘ineinfile’模块将该用户添加到 sudoers 文件中。

您可以将此 Playbook 保存为‘example.yml’,然后使用以下命令来运行它

ansible-playbook example.yml -i hosts

其中,‘-i hosts’表示使用指定的主机清单文件hosts 来运行 Playbook。

你可能感兴趣的:(学习,运维,ansible)