在这篇文章中,我们将逐步介绍如何在 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

Install-Ansible-Fedora-dnf-command

安装完成后,检查其版本

$ ansible --version

Ansible-Version-Check-Fedora

(3) 生成和共享 SSH 密钥

Generate the ssh keys for your local user (sysops) and share that keys with managed node.

为本地用户 (sysops) 生成 ssh 密钥并与被控节点共享该密钥

执行命令生成 ssh 密钥

$ ssh-keygen

ssh-keygen-fedora-linux

现在执行 ssh-copy-id 命令共享 ssh 密钥

$ ssh-copy-id sysops@192.168.1.167

ssh-copy-id-fedora-linux

注意: 确保被管节点上存在 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'

Managed-Node-Connectivity-Check-Ansible

完美,上面证实了连接是存在的,因为乒乓球测试工作正常。

让我们创建一个示例剧本,在被控主机上安装 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

Ansible-Playbook-Install-vsftpd-Managed-Node

以上输出确认剧本已成功执行

验证 vsftpd 服务状态,运行

$ ansible test -m shell -a 'systemctl status vsftpd'

Verify-Vsftpd-Service-Status-Ansible-Ad-Hoc-Command

我的开源项目

酷瓜云课堂-开源在线教育平台


鸠摩智首席音效师
472 声望9 粉丝

身强体健,龙精虎猛的活着。


引用和评论

0 条评论