首页 > 解决方案 > 在ansible中使用远程文件服务器作为数据源

问题描述

我正在尝试使用本地网络中的文件服务器作为我想稍后在 playbook 中的远程计算机上安装的 rpm 包的源。

为此,我使用了一个简单的 apache Web 服务器,我将我的包存储在 /var/www/httml/packages/ list-of-packages 下

我认为可以在文件中的某处用等效的主机名声明文件服务器的 ip,然后在剧本中使用它,但我不记得有多像

最后它应该是这样的:

src: {file-server}/packages/airtame/airtame.rpm

标签: ansiblecopyfileserver

解决方案


我猜您正在查看 ansible 的软件包name允许yum module您:

  • 使用包名
  • 使用包的 URL
  • 使用本地路径文件到包

name:包名或包说明符,带有版本,如name-1.0.
如果指定了以前的版本,任务也需要开启allow_downgradeallow_downgrade有关降级软件包的注意事项,请参阅文档。
当使用 state=latest 时,这可能'*'意味着 run yum -y update
您还可以将 url 或本地路径传递给 rpm 文件(使用 state=present)。要对多个包进行操作,它可以接受以逗号分隔的包字符串或(从 2.0 开始)包列表。

来源: https ://docs.ansible.com/ansible/latest/modules/yum_module.html#parameters ,强调我的。

从例子:

- name: install the nginx rpm from a remote repo
  yum:
    name: http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
    state: present

- name: install nginx rpm from a local file
  yum:
    name: /usr/local/src/nginx-release-centos-6-0.el6.ngx.noarch.rpm
    state: present

来源: https ://docs.ansible.com/ansible/latest/modules/yum_module.html#examples


推荐阅读