在这篇文章中,我们将逐步介绍如何在 Fedora 36 上安装 Ansible。
Ansible 是一个免费的、开源的自动化工具,可以通过 ssh 协议管理远程 Linux 机器。安装 ansible 的系统称为控制节点,被 ansible 管理的远程机器称为被管理节点。
先决条件
- Minimal Install Installed Fedora
- Sudo User with admin rights
- Internet Connectivity
实验准备
- Control Node(控制节点): Fedora 36 – 192.168.1.168
- Managed Node(被控节点): Ubuntu 22.04 – 192.168.1.167
(1) 更新 Fedora 系统
登录您的 fedora 36 系统,运行以下 dnf 命令安装所有更新
$ sudo dnf update -y
所有更新安装完成后,重新启动系统
$ sudo reboot
(2) 使用 dnf 安装 Ansible
Ansible 及其依赖可在 Fedora 36 的默认包存储库中使用,执行以下命令安装
$ sudo dnf install -y ansible
安装完成后,检查其版本
$ ansible --version
(3) 生成和共享 SSH 密钥
Generate the ssh keys for your local user (sysops) and share that keys with managed node.
为本地用户 (sysops) 生成 ssh 密钥并与被控节点共享该密钥
执行命令生成 ssh 密钥
$ ssh-keygen
现在执行 ssh-copy-id 命令共享 ssh 密钥
$ ssh-copy-id sysops@192.168.1.167
注意: 确保被管节点上存在 sysops 用户,并使用 echo 和 tee 命令在被管节点上创建以下用户
$ echo "sysops ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/sysops
(4) 测试 Ansible 安装
我们尝试管理远程系统(192.168.1.167)先创建 ansible.cfg 和 inventory 文件
$ mkdir demo-ansible && cd demo-ansible
$ vi ansible.cfg
创建 ansible.cfg 文件,包含以下内容
[defaults]
inventory = /home/sysops/demo-ansible/inventory
remote_user = sysops
host_key_checking = False
[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False
保存并关闭该文件
创建 inventory 文件,包含以下内容
[test]
192.168.1.167
保存并退出文件
执行以下 ansible ad-hoc 命令检查与管理节点的连通性
$ ansible test -m ping
$ ansible test -m shell -a 'lsb_release -a'
完美,上面证实了连接是存在的,因为乒乓球测试工作正常。
让我们创建一个示例剧本,在被控主机上安装 vsftpd
$ vi vsftpd.yaml
---
- name: Playbook to Install FTP Server
hosts: test
tasks:
- name: Install vsftpd
package:
name: vsftpd
state: present
- name: Start vsftpd service
service:
name: vsftpd
state: started
enabled: yes
保存并关闭文件
使用以下 Ansible 命令运行剧本
$ ansible-playbook vsftpd.yaml
以上输出确认剧本已成功执行
验证 vsftpd 服务状态,运行
$ ansible test -m shell -a 'systemctl status vsftpd'
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。