Ansible基础教程:主机清单与常用模块详解

需积分: 15 3 下载量 181 浏览量 更新于2024-08-27 收藏 8KB MD 举报
--- **Ansible 使用及常用模块介绍** Ansible 是一个强大的自动化运维工具,它基于 SSH 进行无代理的远程控制,能够通过简单的 YAML 配置文件实现配置管理、应用部署、状态检查等任务。本文将深入探讨 Ansible 的基本概念、主机清单管理和常用的命令参数。 ### 1. 主机清单(Hosts 文件) Ansible 的核心是 hosts 文件,用于定义远程目标主机的列表及其相关配置。在给出的示例中,`catk-host` 和 `node` 分别代表两个不同的主机组: - `master` 组包含了 IP 地址 `10.206.21.1k-` 到 `10.206.21.3`,默认使用 `root` 用户进行 SSH 连接,且密码设置为 'linux123!@#'。 - `node` 组包含多个 IP 地址,如 `10.206.19.1` 至 `10.206.19.5` 和 `10.206.102.4` 至 `10.206.102.6`,也使用 `root` 用户,并设置了一个共享密码 `!QAZ2wsx`。 `[all:vars]` 模块用于设置所有主机共有的变量,例如这里配置了统一的 `ansible_ssh_user` 和 `ansible_ssh_pass`。 ### 2. Ansible 命令参数 Ansible 提供了一系列命令行参数,这些参数对于执行任务至关重要: - `-m` 或 `--module-name`: 指定要使用的模块,如 `setup` 可用来获取主机事实信息。 - `-a` 或 `--args`: 传递给模块的具体参数。 - `-u` 或 `--user`: 远程连接的用户名,默认为 `root`,可以在配置文件中修改。 - `-b` 或 `--become`: 指令执行任务时切换用户权限,如果需要不需要提示密码。 - `-k` 或 `--ask-pass`: 提示输入SSH登录密码。 - `-s` 或 `--sudo`: 使用 sudo 执行命令。 - `-U` 或 `--sudo-user`: 指定 sudo 切换到的用户。 - `-K` 或 `--ask-sudo-pass`: 提示输入 sudo 密码。 - `-C` 或 `--check`: 测试操作但不执行,仅查看可能的改动。 - `-c` 或 `--connection`: 指定连接类型,默认为 `smart`。 - `-f` 或 `--forks`: 并发进程数,默认为 5。 - `-i` 或 `--inventory-file`: 定义主机列表路径,通常是 `/etc/ansible/hosts` 或自定义文件。 - `-I` 或 `--filter`: 过滤匹配的主机进一步操作。 - `-l` 或 `--list-hosts`: 显示将被操作的主机列表,不执行。 - `-M` 或 `--module-path`: 指定模块文件夹路径,默认为 `/usr/share/ansible`. - `-o` 或 `--one-line` 或 `--tree`: 压缩输出或层次式输出。 - `--private-key`: 使用私钥进行连接。 - `-T` 或 `--timeout`: 超时时间,默认10秒。 - `-t` 或 `--log-path`: 设置日志输出目录和主机命名的日志文件。 - `-v` 或 `--verbose`: 显示详细日志。 通过理解并掌握这些参数,用户可以根据需求灵活配置 Ansible,实现对远程服务器的高效管理。例如,使用 `ansible server1 -m setup` 命令可以查看名为 `server1` 的主机上的事实信息,这对于了解主机的配置和状态非常有用。 Ansible 的主机清单管理和丰富的命令参数选项使其成为自动化运维的强大工具,能够简化任务执行流程,提高效率和准确性。