在Ansible中,我们可以使用yum模块的name参数指定要安装的软件包,而使用state参数来指定软件包的状态,比如present表示安装,absent表示卸载。
如果我们想要将软件包安装到指定路径下,可以通过yum模块的enforce\_state参数来指定安装路径。例如,我们希望将软件包nginx安装到/opt目录下,可以这样写:
```
- name: Install nginx to /opt
yum:
name: nginx
state: present
enforse_state: latest
installroot: /opt
```
在这个例子中,我们通过installroot参数指定了安装路径为/opt,这样在安装nginx时,软件包会被安装到/opt目录下。同时,enforce\_state参数也指定了安装的匹配模式,这里使用了latest来表示安装最新版的nginx软件包。
另外,有时候我们可能需要安装的软件包并不在默认的yum源中,这时就需要添加额外的yum源来进行安装。在Ansible中,我们可以使用yum\_repo模块来添加额外的yum源,然后通过yum模块来安装软件包。下面是一个示例:
```
- name: Add epel repo
yum_repo:
name: epel
description: EPEL Extra Packages for Enterprise Linux 7
baseurl: https://download.fedoraproject.org/pub/epel/7/$basearch
gpgcheck: yes
- name: Install htop from epel
yum:
name: htop
state: present
enforse_state: latest
enablerepo: epel
```
在这个例子中,我们首先使用yum\_repo模块添加了EPEL源,然后使用yum模块安装了htop软件包,同时通过enablerepo参数指定了从epel源安装软件包。
总的来说,使用Ansible进行软件包管理时,通过yum模块可以方便地安装、卸载软件包,并且可以通过一些参数来进行更灵活的配置,如指定安装路径、安装非默认源中的软件包等。希望这些信息能够帮助到大家在使用Ansible时更加灵活地进行软件包管理。