news 2026/6/15 15:58:05

Ansible的常见用法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 14:03:39

人该怎样活着呢?版本68.8

人该怎样活着呢&#xff1f;版本68.8A思考现实问题并记录自己的灵感 。【生活的指南针】 &#xff08;20250212&#xff09;a1如何思考&#xff1f;思考相似联想因果联想灵感&#xff08;20251226&#xff09;相似联想&#xff1a;比如看到苹果想到牛顿在树下被苹果砸到发…

作者头像 李华
网站建设 2026/6/15 14:09:45

AI智能体:从感知到决策,如何自主完成多步骤任务

有一种计算机程序或者系统具有这样特点&#xff0c;它就是人工智能智能体也就是AI Agent&#xff0c;它能够去感知所处的环境&#xff0c;还能对所获取的相关信息加以处理&#xff0c;并且会采取相应行动从而达成特定目标。和传统那种单一功能的AI工具不一样&#xff0c;智能体…

作者头像 李华
网站建设 2026/6/15 15:17:59

AI原生应用对话管理:打造智能交互新生态

AI原生应用对话管理&#xff1a;打造智能交互新生态 关键词&#xff1a;AI原生应用、对话管理、智能交互、多轮对话、上下文维护、意图识别、状态跟踪 摘要&#xff1a;在AI技术爆发的今天&#xff0c;“对话"正从"功能补充"升级为"核心交互方式”。本文将…

作者头像 李华
网站建设 2026/6/15 14:10:21

小白友好:Qwen3-ForcedAligner-0.6B字幕生成工具详解

小白友好&#xff1a;Qwen3-ForcedAligner-0.6B字幕生成工具详解 1. 这个工具到底能帮你做什么&#xff1f; 你有没有遇到过这些情况&#xff1f; 剪辑一段会议录音&#xff0c;想加字幕&#xff0c;但手动打时间戳太耗时&#xff1b; 给短视频配中英双语字幕&#xff0c;听一…

作者头像 李华
网站建设 2026/6/15 14:14:59

解锁二次元语音合成:MoeTTS角色语音定制全攻略

解锁二次元语音合成&#xff1a;MoeTTS角色语音定制全攻略 【免费下载链接】MoeTTS Speech synthesis model /inference GUI repo for galgame characters based on Tacotron2, Hifigan, VITS and Diff-svc 项目地址: https://gitcode.com/gh_mirrors/mo/MoeTTS 在ACG创…

作者头像 李华
网站建设 2026/6/15 14:16:56

ol-ext:OpenLayers扩展库完全指南

ol-ext&#xff1a;OpenLayers扩展库完全指南 【免费下载链接】ol-ext Cool extensions for Openlayers (ol) - animated clusters, CSS popup, Font Awesome symbol renderer, charts for statistical map (pie/bar), layer switcher, wikipedia layer, animations, canvas fi…

作者头像 李华