当前位置: 首页 > news >正文

Ansible的常见用法

目录

一、Ansible 安装

1.pip 安装(推荐,版本最新)

2.CentOS/RHEL 安装

3.Ubuntu/Debian 安装

二、Ansible 基础配置

1. 免密登录配置(核心)

2. 配置主机清单(Inventory)

3. 核心配置文件(ansible.cfg)

三、Ansible 常见用法

1. 基础命令(Ad-Hoc 临时命令)

2. Playbook(剧本)

3. 常用模块速查


一、Ansible 安装

Ansible 是基于 Python 开发的自动化工具,支持多种安装方式,这里推荐最常用的pip 安装系统包管理器安装

前置条件

  • 控制节点(运行 Ansible 的机器):Linux/macOS(Windows 需用 WSL),Python 3.8+
  • 被管理节点:无需安装 Ansible,只需开启 SSH 服务,且控制节点能免密登录

1.pip 安装(推荐,版本最新)

# 升级 pip pip3 install --upgrade pip # 安装 Ansible pip3 install ansible # 验证安装 ansible --version

2.CentOS/RHEL 安装

# 安装 EPEL 源(CentOS 7) yum install -y epel-release # 安装 Ansible yum install -y ansible # CentOS 8/RHEL 8 需先启用 PowerTools dnf install -y epel-release dnf config-manager --set-enabled powertools dnf install -y ansible

3.Ubuntu/Debian 安装

# 更新源 apt update # 安装依赖 apt install -y software-properties-common # 添加 Ansible 源 add-apt-repository --yes --update ppa:ansible/ansible # 安装 Ansible apt install -y ansible

二、Ansible 基础配置

1. 免密登录配置(核心)

Ansible 通过 SSH 连接被管理节点,免密登录是基础:

# 1. 在控制节点生成 SSH 密钥(一路回车即可) ssh-keygen -t rsa -b 4096 # 2. 将公钥拷贝到被管理节点(替换为目标主机 IP 和用户名) ssh-copy-id root@192.168.1.100

2. 配置主机清单(Inventory)

主机清单是 Ansible 管理的节点列表,默认路径:/etc/ansible/hosts

# 编辑主机清单 vim /etc/ansible/hosts # 示例配置(按实际节点修改) [web_servers] # 分组名(自定义) 192.168.1.100 ansible_ssh_user=root ansible_ssh_port=22 192.168.1.101 ansible_ssh_user=ubuntu [db_servers] 192.168.1.200 # 分组嵌套 [all_servers:children] web_servers db_servers

3. 核心配置文件(ansible.cfg)

默认路径:/etc/ansible/ansible.cfg,常用配置项:

[defaults] # 主机清单路径 inventory = /etc/ansible/hosts # 禁用 SSH 密钥检查(避免首次连接报错) host_key_checking = False # 默认远程用户 remote_user = root # 超时时间 timeout = 10 [privilege_escalation] # 提权(如需 sudo) become = True become_method = sudo become_user = root become_ask_pass = False # 无需输入 sudo 密码

三、Ansible 常见用法

1. 基础命令(Ad-Hoc 临时命令)

临时命令用于快速执行简单操作,无需编写 Playbook,格式:

ansible <主机/分组> -m <模块> -a <模块参数>

常用示例:

# 1. 测试所有节点连通性(ping 模块) ansible all -m ping # 2. 在 web_servers 分组执行 shell 命令(查看内存) ansible web_servers -m shell -a "free -h" # 3. 安装 nginx(yum/apt 模块) # CentOS ansible web_servers -m yum -a "name=nginx state=present" # Ubuntu ansible web_servers -m apt -a "name=nginx state=present update_cache=yes" # 4. 启动并开机自启 nginx(service 模块) ansible web_servers -m service -a "name=nginx state=started enabled=yes" # 5. 拷贝文件到被管理节点(copy 模块) ansible web_servers -m copy -a "src=/root/nginx.conf dest=/etc/nginx/nginx.conf mode=644" # 6. 创建目录(file 模块) ansible all -m file -a "path=/data/test state=directory mode=755" # 7. 查看远程主机信息(setup 模块,收集facts) ansible 192.168.1.100 -m setup

2. Playbook(剧本)

Playbook 是 Ansible 的核心,用 YAML 格式编写,用于执行复杂的自动化任务。

示例:部署 nginx 的 Playbook(nginx.yml)

--- - name: 部署 Nginx 服务 # Play 名称 hosts: web_servers # 目标主机/分组 gather_facts: yes # 收集主机信息(默认开启) become: yes # 提权 tasks: # 任务列表 - name: 安装依赖包 # 任务1:安装依赖 yum: name: epel-release state: present when: ansible_os_family == "RedHat" # 仅 CentOS/RHEL 执行 - name: 安装 Nginx # 任务2:安装 nginx package: name: nginx state: present - name: 拷贝 nginx 配置文件 # 任务3:替换配置 copy: src: /root/nginx.conf dest: /etc/nginx/nginx.conf mode: 0644 notify: 重启 Nginx # 配置变更时触发 handler - name: 启动 Nginx 并开机自启 # 任务4:启动服务 service: name: nginx state: started enabled: yes handlers: # 处理器(仅被触发时执行) - name: 重启 Nginx service: name: nginx state: restarted

执行 Playbook:

ansible-playbook nginx.yml # 可选参数: # -v:显示详细输出 # --check:模拟执行(不实际修改) # --limit:指定仅执行部分主机 ansible-playbook nginx.yml --limit 192.168.1.100

3. 常用模块速查

模块名用途核心参数
ping测试主机连通性
shell执行 shell 命令command(要执行的命令)
yum/apt安装软件包name(包名)、state(present/absent)
service管理系统服务name、state(started/stopped/restarted)、enabled
copy拷贝文件 / 目录src、dest、mode
file管理文件 / 目录权限path、state(directory/file/link)、mode
setup收集主机信息(facts)filter(过滤参数,如 ansible_os_family)
http://www.jsqmd.com/news/360138/

相关文章:

  • kafka概述
  • 批归一化:从理论到实现的关键陷阱与优化
  • Python3 operator模块高效使用指南
  • 普通数组-----除了自身以外数组的乘积
  • AI工程师的成长指南
  • PatchPal:极简AI编码代理实现
  • AI时代的设计师:专业化vs.泛化
  • 机器视觉工程师职位深度解析与面试指南
  • 稳健医疗机器人工程师职位深度解析
  • 企业知识管理系统怎么选?17款工具对比:从协作编辑到安全合规
  • 跟思兼学Klipper(40) 免费高速简单的3D打印机远程控制服务
  • 机器人工程师职位深度解析与技术指南
  • MCP (Model Context Protocol) 技术理解 - 第一篇
  • 2026年靠谱的三合一设备/不锈钢三合一设备厂家采购参考指南 - 品牌宣传支持者
  • 2026年口碑好的精密吹塑/异形吹塑厂家口碑推荐汇总 - 品牌宣传支持者
  • IT运维智能体开发工程师的技术全景与实践指南
  • 协鑫集成高级AI开发工程师职位深度解析:职责、能力与面试指南
  • 安卓驱动开发工程师:深入技术核心,驱动智能未来
  • 2026年知名的澳洲移民留学对接/澳洲移民签证办理口碑排行实力厂家口碑参考 - 品牌宣传支持者
  • 2026年热门的氢氟酸反应釜/磷酸反应釜厂家采购参考指南(必看) - 品牌宣传支持者
  • 2026年热门的搪瓷薄膜蒸发器/山东刮板式薄膜蒸发器厂家最新推荐 - 品牌宣传支持者
  • 3DE CATIA基于知识工程的高效设计实战!
  • 聊一下电磁仿真和常用的电磁仿真软件
  • 2026年评价高的搪玻璃薄膜蒸发器/山东搪玻璃厂家实力参考 - 品牌宣传支持者
  • 2026年靠谱的丝绒压光压花/面料凹凸压光压花行业内口碑厂家推荐 - 品牌宣传支持者
  • 人工智能开发职位申请指南:陕西华码半导体科技有限公司面试准备
  • 南京夏宏智能科技有限公司人工智能工程师职位深度解析:技术精要、面试宝典与职业发展蓝图
  • 移动端软件开发工程师职位深度解析:以通桥医疗科技为例
  • 障碍期权做市商定价与对冲系统
  • 字符串 / 内存函数与大小端模式深度解析