Ansible基本使用

一、Ansible概述和安装

Ansible 是一款功能强大的 IT 自动化工具,通过无代理机制实现高效的配置管理、应用部署、任务执行以及多节点间的 IT 编排。其主要特点包括:

  1. 无代理:无需在目标节点上安装任何额外的代理服务。
  2. 易于学习:基于简单的 YAML 语法定义任务。
  3. 模块化设计:提供丰富的模块库,适配多种任务需求。
  4. 高效安全:基于 SSH 进行通信,无需额外开放端口。
1.安装指南

在安装时,需根据使用环境选择适配方案:

  • CentOS 7

CentOS 7 在生产环境中依然应用广泛,使用 yum 进行安装:

yum install epel-release -y
yum install ansible -y
  • CentOS 9

CentOS 9 为官方维护版本,推荐使用 dnf 进行安装:

dnf install epel-release -y
dnf install ansible -y
  • Ubuntu

Ubuntu 系统上可通过 APT 包管理安装:

sudo apt update
sudo apt install ansible -y
2.验证安装正确性

安装完成后,可以运行下列命令确认:

ansible --version
二、Inventory 文件的配置和解释

Inventory 文件是用于定义目标节点和管理节点组的核心文件。

1.基本格式

Inventory 文件默认位置为 /etc/ansible/hosts,其格式如下:

[group1]
host1 ansible_host=192.168.1.10 ansible_user=root
host2 ansible_host=192.168.1.11 ansible_user=admin

[group2]
host3 ansible_host=192.168.1.12 ansible_port=2222
  • group1group2:节点分组。
  • ansible_host:目标节点的 IP 地址。
  • ansible_user:用于连接的用户。
  • ansible_port:指定目标节点的 SSH 端口,默认为 22。
2.高级配置
  • 公共变量

    公共变量可以为全局或指定组设定默认值:

[all:vars]
ansible_python_interpreter=/usr/bin/python3
  • 分组维护

    通过分组进行节点的根据配置:

[group1:children]
subgroup1
subgroup2
三、动态配置 Inventory 文件

动态 Inventory 的优点在于能够根据实时环境生成节点清单,避免手动维护带来的繁琐和错误。以下为动态配置的步骤和注意事项:

1.从简单脚本入手

以下是一个简单的 Python 脚本示例,用于生成动态 Inventory 文件:

import argparse
import json

def 
### Ansible 基本配置教程 #### 1. 安装与环境准备 Ansible 是一种基于 Python 的自动化工具,因此需要确保系统已安装 Python 和相关依赖。在大多数 Linux 发行版中,可以通过包管理器安装 Ansible。例如,在 CentOS 上使用以下命令安装: ```bash yum install epel-release -y yum install ansible -y ``` 对于 Ubuntu 系统,可以使用以下命令[^2]: ```bash apt-get update apt-get install software-properties-common apt-add-repository --yes --update ppa:ansible/ansible apt-get install ansible ``` #### 2. 配置 Inventory 文件 Ansible 使用 `inventory` 文件定义要管理的主机列表。默认情况下,该文件位于 `/etc/ansible/hosts`。可以通过编辑此文件来添加主机或主机组。例如: ```plaintext # 单个主机 192.168.100.59:22 # 主机带密码和端口 192.168.100.60 ansible_ssh_pass='123456' ansible_ssh_port=22 # 主机组 [nginx] 192.168.100.57 192.168.100.58 [nginx:vars] ansible_ssh_pass='123456' [webservers:children] nginx ``` 上述配置展示了如何定义单个主机、主机组以及子组,并为特定组设置变量[^3]。 #### 3. 测试连接 完成配置后,可以使用以下命令测试与目标主机的连接: ```bash ansible all -m ping ``` 如果所有主机都返回 `pong`,则表示连接成功。如果部分主机无法连接,请检查 SSH 密钥、密码或网络配置。 #### 4. 配置 Ansible 主配置文件 Ansible 的主配置文件通常位于 `/etc/ansible/ansible.cfg`。可以通过编辑此文件来自定义行为。以下是一个典型的配置示例: ```ini [defaults] inventory = /etc/ansible/hosts remote_user = devops ask_pass = True host_key_checking = False forks = 10 ``` - `inventory` 指定库存文件路径。 - `remote_user` 定义远程主机上的默认用户。 - `ask_pass` 控制是否提示输入 SSH 密码。 - `host_key_checking` 禁用 SSH 主机密钥检查。 - `forks` 定义并发执行的任务数[^5]。 #### 5. 执行 Ad-Hoc 命令 Ansible 提供了两种方式执行任务:Ad-Hoc 和 Playbook。Ad-Hoc 是一种简单的方式,适合快速执行一次性任务。例如,可以在所有主机上安装 `httpd`: ```bash ansible webservers -m yum -a 'name=httpd state=present' ``` 卸载软件时可以使用以下命令: ```bash ansible webservers -m yum -a 'name=httpd state=absent' ``` #### 6. 创建 Playbook Playbook 是一种更复杂的任务执行方式,适合复杂场景。以下是一个简单的 Playbook 示例,用于复制文件并设置权限: ```yaml --- - name: 配置 NTP 服务 hosts: all tasks: - name: 复制 NTP 配置文件 copy: src: /mine/ntp.conf dest: /etc/ntp.conf owner: root group: root mode: '0644' backup: yes ``` 将上述内容保存为 `ntp.yml` 并运行: ```bash ansible-playbook ntp.yml ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值