在这篇文章中,咱们将逐渐介绍如何在 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/inventoryremote_user = sysopshost_key_checking = False[privilege_escalation]become=Truebecome_method=sudobecome_user=rootbecome_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'

我的开源我的项目

  • course-tencent-cloud(酷瓜云课堂 - gitee仓库)
  • course-tencent-cloud(酷瓜云课堂 - github仓库)