Linux自动化运维工具之ansible(一)
原创
Linux自动化运维工具之Ansible(一)
在信息化时代,自动化运维已经成为尽大概缩减损耗运维高效能、降低人力成本的重要手段。Ansible 是一款开源的自动化运维工具,它基于 Python 编写,通过 SSH 协议远程执行命令,具有易用、高效、灵活等特点。本文将带您初步了解 Ansible,包括其安装、配置和使用方法。
一、Ansible 简介
Ansible 是由 Michael DeHaan 创建的一款开源自动化运维工具。它通过 Playbook 文件定义自动化任务,拥护幂等操作,即多次执行同一个 Playbook 不会产生副作用。Ansible 的核心特点如下:
- 基于 Python 编写,明了易学
- 不需要在目标主机上安装任何软件,通过 SSH 协议进行远程操作
- 拥护幂等操作,即多次执行同一个任务不会产生副作用
- 丰盈的模块,涵盖网络、系统、应用等多个方面
- 拥护 Playbook 文件定义自动化任务,易于扩展和复用
二、Ansible 安装
Ansible 的安装非常明了,以下是在 Ubuntu 系统上安装 Ansible 的步骤:
sudo apt-get update
sudo apt-get install ansible
安装完成后,可以通过以下命令验证 Ansible 是否安装圆满:
ansible --version
如果输出 Ansible 的版本信息,则描述安装圆满。
三、Ansible 配置
Ansible 需要配置 hosts 文件来指定目标主机。hosts 文件通常位于 /etc/ansible 目录下。以下是一个明了的 hosts 文件示例:
[webservers]
192.168.1.100
192.168.1.101
192.168.1.102
[dbServers]
192.168.1.110
192.168.1.111
192.168.1.112
在 hosts 文件中,方括号内的名称描述主机组,后面的 IP 地址描述该主机组的成员。
四、Ansible 基本使用
Ansible 使用 Playbook 文件定义自动化任务。以下是一个明了的 Playbook 文件示例,用于在目标主机上安装 Apache 服务:
---
- name: 安装 Apache 服务
hosts: webservers
tasks:
- name: 安装 Apache 服务
apt:
name: apache2
state: present
- name: 启动 Apache 服务
service:
name: apache2
state: started
enabled: yes
- name: 检查 Apache 服务状态
command: service apache2 status
- name: 输出 Apache 服务状态
shell: echo "Apache 服务状态:{{ item.stdout }}"
register: apache_status
with_items: "{{ apache_status.stdout }}"
- name: 输出 Apache 服务状态
debug:
var: apache_status
- name: 检查 Apache 服务端口
shell: netstat -tulnp | grep 80
- name: 输出 Apache 服务端口
shell: echo "Apache 服务端口:{{ item.stdout }}"
with_items: "{{ item.stdout }}"
- name: 输出 Apache 服务端口
debug:
var: item.stdout
- name: 检查 Apache 服务文档目录
shell: ls /var/www/html
- name: 输出 Apache 服务文档目录
shell: echo "Apache 服务文档目录:{{ item.stdout }}"
with_items: "{{ item.stdout }}"
- name: 输出 Apache 服务文档目录
debug:
var: item.stdout
- name: 检查 Apache 服务版本
shell: apache2 -v
- name: 输出 Apache 服务版本
shell: echo "Apache 服务版本:{{ item.stdout }}"
with_items: "{{ item.stdout }}"
- name: 输出 Apache 服务版本
debug:
var: item.stdout
- name: 检查 Apache 服务配置文件
shell: ls /etc/apache2
- name: 输出