复制后使用ansible安装rpm
我有一个ansible playbook,可以将文件复制到远程服务器上的某个位置。它很好用。在本例中,该文件是一个rpm。这就是它的工作方式:复制后使用ansible安装rpm,ansible,yaml,devops,Ansible,Yaml,Devops,我有一个ansible playbook,可以将文件复制到远程服务器上的某个位置。它很好用。在本例中,该文件是一个rpm。这就是它的工作方式: --- - hosts: my_host tasks: - name: mkdir /tmp/RPMS file: path=/tmp/RPMS state=directory - name: copy RPMs to /tmp/RPMS copy: src: "{{ item }}"
---
- hosts: my_host
tasks:
- name: mkdir /tmp/RPMS
file: path=/tmp/RPMS state=directory
- name: copy RPMs to /tmp/RPMS
copy:
src: "{{ item }}"
dest: /tmp/RPMS
mode: 0755
with_items:
[any_rpm-x86_64.rpm]
register: rpms_copied
现在,在远程服务器上成功地安装了该文件之后,我需要启动一些新的逻辑来安装位于/tmp/RPMS中的rpm。我已经运行了以下的许多不同版本,因此将此代码添加到上面的块中:
- name: install rpm from file
yum:
name: /tmp/RPMS/any_rpm-x86_64.rpm
state: present
become: true
我不知道是格式不正确,还是不是这样。有人能告诉我如何使用现有剧本中的几行新代码在/tmp/RPMS目录中安装rpm吗
谢谢。我在其他任何地方都找不到这一点,我真的花了一整天的工作时间才做到这一点。对于其他挣扎的人:
- name: Install my package from a file on server
shell: rpm -ivh /tmp/RPMS/*.rpm
async: 1800
poll: 0
become_method: sudo
become: yes
become_user: root
我投了两张反对票,没有任何评论。有人能告诉我他们的问题是什么,我可以采取行动纠正你的错误吗?注1:您粘贴的任务的yaml无效,但我猜这是一个复制/粘贴错误。。。注2:不鼓励按照您在下面的自我解决方案中的建议通过shell进行安装。它不是幂等的。使用yum或package模块是一种可行的方法,只要正确设置任务yaml的格式,就可以按照建议工作。