🟢mac上使用ansible控制多台ubuntu执行命令
在 macOS 上使用 Ansible 控制多台 Ubuntu 服务器执行命令的过程可以分为以下几个步骤:
安装 Ansible: 首先,你需要在 macOS 上安装 Ansible。你可以使用
pip或 Homebrew 来安装。使用
pip安装 Ansible:pip install ansible使用 Homebrew 安装 Ansible:
brew install ansible配置 SSH 连接: 确保你可以通过 SSH 连接到目标 Ubuntu 服务器。你需要在 macOS 上生成 SSH 密钥对,并将公钥添加到每台 Ubuntu 服务器的
~/.ssh/authorized_keys文件中。生成 SSH 密钥对:
ssh-keygen -t rsa -b 4096将公钥复制到目标服务器:
ssh-copy-id user@hostname配置 Ansible 主机文件: 创建或编辑 Ansible 主机文件(通常位于
/etc/ansible/hosts或~/.ansible/hosts),并添加你的 Ubuntu 服务器信息。示例主机文件:
[ubuntu_servers] server1 ansible_host=192.168.1.101 ansible_user=root server2 ansible_host=192.168.1.102 ansible_user=root编写 Ansible Playbook: 创建一个 Ansible Playbook 文件(例如
playbook.yml),定义你想在多台服务器上执行的命令或任务。示例 Playbook 文件:
--- - name: Execute command on multiple Ubuntu servers hosts: ubuntu_servers tasks: - name: Run a shell command shell: echo "Hello, World!"运行 Ansible Playbook: 使用
ansible-playbook命令来运行你的 Playbook。ansible-playbook -i /path/to/your/hosts playbook.yml如果你使用的是默认的主机文件位置(如
/etc/ansible/hosts),可以省略-i参数。
如果你只需要在多台服务器上批量执行简单的任务,并且不想使用 Playbook,可以直接使用 Ansible 的 ad-hoc 命令。这种方法非常适合快速执行一次性任务。
使用 Ansible Ad-Hoc 命令
Ansible 的 ad-hoc 命令可以让你在不编写 Playbook 的情况下,直接在命令行中执行任务。以下是一些常用的例子:
1. 在多台服务器上执行 Shell 命令
假设你有一个名为 hosts 的库存文件,其中定义了你的服务器列表。你可以使用以下命令在这些服务器上执行 Shell 命令:
BASH复制
要去掉python解释器警告信息
这样,你就可以在 macOS 上使用 Ansible 控制多台 Ubuntu 服务器并执行命令了。如果你有更多复杂的任务,可以根据需要扩展你的 Playbook。
Last updated