用于安装 mod_ssl、python-passlib 和 firewalld 的 Ansible-Playbook(并始终保持最新)

Ansible-Playbook for the Install of mod_ssl, python-passlib and firewalld (and keep them always latest)

我用 Ansible 管理 2 个客户端 (centos8),我想在网络服务器上安装 mod-ssl,在所有主机上安装 python-passlib,在所有主机上安装 firewalld。 Playbook 应在每次运行时检查这 3 个包是否是最新可用的。

我已经写了一个剧本,但我收到错误消息,没有名称为 "python-passlib"

的包

这个包在centos8上有别名吗? 而且我认为我安装这个 mod-ssl 包的方式也是错误的......你们可以检查我的 Playbook 并给我一个提示吗? :D

这是我的剧本:


- hosts: all
  become: yes
  tasks:
  - name: Install different services and keep them up-to-date
    dnf:
      name:
        - firewalld
        - python-passlib
      state: latest 

- hosts: webserver
  become: yes
  tasks:
  - name: Install mod-ssl and keep it up-to-date
    dnf:
      name: mod-ssl


- hosts: webserver
  become: yes
  tasks:
  - name: Insert a index.php site 
    copy: 
      src: /home/mike/devops_live_demo/index.php
      dest: /var/www/html/
      owner: mike
      mode: '0644'

- hosts: webserver
  become: yes
  tasks:
  - name: Reboot the Webserver
    reboot:      

提前谢谢大家!! 问候 麦克

python-passlib 在 RHEL 7 的更高版本中被弃用,并在 RHEL 8 中完全删除(因此也在 CentOS 8 中删除)。它可能会在 EPEL 存储库中可用,但目前不存在。有一个开放的 RFE 包含它 here

要同时安装python-passlib,可以使用Ansible pip模块并安装passlib。您可以获取 passlib 的第 3 方打包 RPM,但我建议您不要这样做,除非您信任该来源。

mod_ssl 可以从 RPM 存储库安装,你只需要在你的任务中调整包名称(你有 mod-ssl,但它应该是 mod_ssl)。如果你想让包保持最新,你还需要添加 state: latest

  - name: Install mod-ssl and keep it up-to-date
    dnf:
      name: mod_ssl
    state: latest