在目录中的debian文件上循环,并使用ansible按顺序安装

在目录中的debian文件上循环,并使用ansible按顺序安装,ansible,ansible-2.x,Ansible,Ansible 2.x,我在/home/emgda/del/目录中有大约250个Debian文件,这些文件会定期更改,必须在每天结束时安装 因此,我试图编写一个Ansible脚本来循环这个目录,将文件名保存在一个数组中,然后使用命令sudo dpkg-I file_name 下面是我列出目录中文件的代码,只需添加命令:以某种方式执行上面的命令 --- - hosts: local gather_facts: false tasks: - command: "ls /home/emgda/del/"

我在/home/emgda/del/目录中有大约250个Debian文件,这些文件会定期更改,必须在每天结束时安装

因此,我试图编写一个Ansible脚本来循环这个目录,将文件名保存在一个数组中,然后使用命令
sudo dpkg-I file_name

下面是我列出目录中文件的代码,只需添加
命令:
以某种方式执行上面的命令

---
- hosts: local
  gather_facts: false

  tasks:

  - command: "ls /home/emgda/del/"
    register: dir_out

  - debug: var={{item}}
    with_items: dir_out.stdout_lines
输出为

PLAY [local] ***********************************************************************************************************

TASK [command] ************************************************************************************************************************
changed: [localhost]

TASK [debug] ************************************************************************************************************************
ok: [localhost] => (item=dir_out.stdout_lines) => {
    "dir_out.stdout_lines": [
        "a.deb"
    ],
    "item": "dir_out.stdout_lines"
}

PLAY RECAP ************************************************************************************************************************
localhost                  : ok=2    changed=1    unreachable=0    failed=0
任何帮助都将不胜感激

问:“我在/home/emgda/del/目录中有Debian文件,这些文件会定期更改,必须安装。”

答:下载软件包,并使用

可以在一个任务中插入和安装软件包

    - apt:
        deb: "{{ item }}"
      loop: "{{ query('fileglob', '/home/emgda/del/*.deb') }}"

我用下面的技巧解决了这个问题

---
- hosts: local
  gather_facts: false

  tasks:

  - name: Making a list of files
    shell: "ls /home/emgda/packages/"
    register: command_result

  - name: Installing Debian sequentially.
    become: yes
    shell: "dpkg -i /home/emgda/packages/{{item}}"
    with_items: 
     - "{{ command_result.stdout_lines }}"

它给出一个错误dpkg:error:请求的操作需要超级用户权限。我试着把
变成
,但可能语法有问题。是的
sudo dpkg
权限不足,无法运行
apt
模块。看见如果没有常规升级权限,则继续执行
命令:“sudo dpkg-i{{item}”
---
- hosts: local
  gather_facts: false

  tasks:

  - name: Making a list of files
    shell: "ls /home/emgda/packages/"
    register: command_result

  - name: Installing Debian sequentially.
    become: yes
    shell: "dpkg -i /home/emgda/packages/{{item}}"
    with_items: 
     - "{{ command_result.stdout_lines }}"