回购中的实际包名称为package-2.6.12-3.el7.x86_64。
目标是使用Ansible安装软件包,以便:
该仓库可以不时更新软件包,但我不知道何时。
我的想法是安装这样的软件包;
- name: Install package
yum:
name: package-2.6
state: present
Run Code Online (Sandbox Code Playgroud)
但是任务失败,因为package-2.6不在仓库中。尽管package该方法很简单,但并不是未来的证明。
更新:
似乎通配符* do有效,例如package-2.6*。
简短的通用答案:
您应该可以只使用通配符*。
所以就:
- name: Install package
yum:
name: package-2.6*
state: latest
Run Code Online (Sandbox Code Playgroud)
长案例具体答案:
我在 AWS 中为您的特定情况创建了一个测试服务器,发现通配符确实有效(运行 CentOS 7 的 EC2 实例,安装了`mongodb-org-server-3.4.0*)。
您确实需要先确保已正确配置了 mongo 存储库,但您在评论中说,如果您提供完整版本号,则可以下载该软件包,这很不寻常。无论如何,这是我制作和运行的最小剧本:
play.yml:
- hosts: all
remote_user: centos
tasks:
- name: Add MongoDB repo for CentOS
become: true
copy:
src: ./files/mongodb-org-3.4.repo
dest: /etc/yum.repos.d/mongodb-org-3.4.repo
- name: Install mongodb
become: true
yum:
name: mongodb-org-server-3.4.0*
state: latest # Works with 'present' too, but won't update versions
Run Code Online (Sandbox Code Playgroud)
该剧本为 repo 配置复制了一个本地文件,如下所示(路径是相对于play.yml文件的):
files/mongod-org-3.4.repo:
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
Run Code Online (Sandbox Code Playgroud)
Zle*_*ni 1
不确定是否适用于您的 Yum 套餐。但对于 Java Open JDK 安装,其中 java-1.7.0 和 java-1.8.0 软件包都可以从我配置的 yum 存储库进行安装。
这将确保 1.7.x 版本是最新版本,而无需安装 1.8.x。
- name: Install latest 1.7.x jdk
yum:
name: java-1.7.0-openjdk.x86_64
state: latest
Run Code Online (Sandbox Code Playgroud)
从上面安装的实际版本是:
$ rpm -q java-1.7.0-openjdk.x86_64
java-1.7.0-openjdk-1.7.0.121-2.6.8.1.el6_8.x86_64
Run Code Online (Sandbox Code Playgroud)
对于 MongoDB,2.x 版本和 3.x 版本的包名称相同。
但 2.x 版本有一个 Yum repo 文件,3.x 版本有另一个 Yum repo 文件。https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
因此,为了确保您获得最新的 2.x 版本而无需迁移到 3.x,请将 2.x 存储库文件添加到目标主机,并在 ansible 任务中使用disable和参数进行安装/更新操作。enablerepo
- name: Ensure latest 2.x mongodb version is installed
yum:
name: mongodb-org
disablerepo: "*"
enablerepo: mongodb-org-2.6
state: latest
Run Code Online (Sandbox Code Playgroud)
注意:使用disablerepo: "*"as mongodb 包也存在于其他存储库中,例如 epel。
| 归档时间: |
|
| 查看次数: |
3691 次 |
| 最近记录: |