From 5c0c013375116129486050b794383b3c9bfe565e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=A5=E6=B5=A9?= Date: Tue, 29 Oct 2024 09:57:32 +0800 Subject: [PATCH] first commit --- README.md | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++ hosts.ini | 4 +++ playbook.yml | 10 +++++++ 3 files changed, 92 insertions(+) create mode 100644 README.md create mode 100644 hosts.ini create mode 100644 playbook.yml diff --git a/README.md b/README.md new file mode 100644 index 0000000..2fafb2f --- /dev/null +++ b/README.md @@ -0,0 +1,78 @@ +要使用 Ansible 在 Debian 服务器上进行批量操作,你需要按照以下步骤进行设置: + +### 1. 安装 Ansible + +在你的 Mac 上安装 Ansible。可以通过 Homebrew 来安装,运行以下命令: + +```bash +brew install ansible +``` + +### 2. 配置 SSH 访问 + +确保你可以通过 SSH 无密码访问所有 Debian 服务器。你可以生成 SSH 密钥并将公钥添加到每个服务器的 `~/.ssh/authorized_keys` 文件中: + +```bash +ssh-keygen -t rsa +``` + +然后使用 `ssh-copy-id` 将公钥复制到每台服务器: + +```bash +ssh-copy-id user@server_ip +``` + +### 3. 创建 Ansible 主机清单 + +在你的 Mac 上创建一个主机清单文件,例如 `hosts.ini`,内容如下: + +```ini +[debian_servers] +server1_ip +server2_ip +server3_ip +``` + +### 4. 测试连接 + +使用 Ansible 测试连接是否成功: + +```bash +ansible -i hosts.ini debian_servers -m ping +``` + +如果配置正确,你应该会看到“pong”响应。 + +### 5. 编写 Ansible Playbook + +创建一个简单的 Ansible Playbook,例如 `playbook.yml`,来执行你想要的操作。以下是一个示例 Playbook,更新所有软件包: + +```yaml +--- +- hosts: debian_servers + become: yes + tasks: + - name: Update all packages + apt: + update_cache: yes + upgrade: dist +``` + +### 6. 执行 Playbook + +使用以下命令运行 Playbook: + +```bash +ansible-playbook -i hosts.ini playbook.yml +``` + +### 7. 管理和扩展 + +你可以根据需求扩展 Playbook,添加更多的任务,比如安装软件、管理文件等。 + +### 参考文档 + +- [Ansible 官方文档](https://docs.ansible.com/) +- [Ansible 适用于 Debian 的模块](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/apt_module.html) + +通过这些步骤,你就可以在你的 Debian 服务器上使用 Ansible 进行批量操作了。 \ No newline at end of file diff --git a/hosts.ini b/hosts.ini new file mode 100644 index 0000000..ceb1b86 --- /dev/null +++ b/hosts.ini @@ -0,0 +1,4 @@ +# ansible -i hosts.ini debian_servers -m ping +[debian_servers] +129.159.248.21 ansible_ssh_user=root ansible_ssh_common_args='-o StrictHostKeyChecking=no' +130.61.71.202 ansible_ssh_user=root ansible_ssh_common_args='-o StrictHostKeyChecking=no' \ No newline at end of file diff --git a/playbook.yml b/playbook.yml new file mode 100644 index 0000000..a004320 --- /dev/null +++ b/playbook.yml @@ -0,0 +1,10 @@ +--- # ansible-playbook -i hosts.ini playbook.yml +- hosts: debian_servers + become: true # 的作用是提升任务的执行权限。具体来说,它允许任务在目标主机上以不同于当前用户的身份运行,通常是以超级用户(root)的身份。这在需要执行需要更高权限的操作时非常有用,例如安装软件包、修改系统配置文件等。 + tasks: + - name: Update all packages + apt: + update_cache: yes + upgrade: dist + vars: # Python 解释器警告: 输出中有关于 Python 解释器的警告。这并不影响 Ansible 的执行,但提醒你未来可能会因安装不同版本的 Python 而导致路径变更。若需消除警告,可以显式指定使用的 Python 解释器。在 Playbook 中添加如下变量: + ansible_python_interpreter: /usr/bin/python3