Ansible:通过HTTP安装tarball

Sim*_*mon 11 installation http ansible

我想扩展我的ansible playbook来安装/验证phantomjs和wkhtmltopdf的安装到我的Debian 7机器上.这两个程序都可以通过HTTP作为打包的tarball使用.我知道get_url模块,但它没有解压缩东西,如果我添加一些shell命令来解压缩和移动二进制文件,我怀疑每次运行ansible时,tarball都会被下载,解压缩并再次移动,导致不必要的网络流量

我怎么解决这个问题?我应该使用apt命令创建一个.deb文件并运行它,还是应该创建一个新的ansible模块来安装tarball,还是有些东西我可以忽略?

leu*_*cos 10

如果您下载特定版本(例如foo_1.2.3.tar.gz,不是foo_latest.tar.gz),您可以通过保留下载的tarball来执行此操作:

- name: Gets tarball
  sudo: yes
  sudo_user: "{{ deploy_user }}"
  get_url:
    url="http://some.host/some_tarball-{{ tarball_version }}.tar.gz"
    dest="/home/{{ deploy_user }}/"
  register: new_archive

- name: Unarchive source
  sudo: yes
  sudo_user: "{{ deploy_user }}"
  unarchive:
    src="/home/{{ deploy_user }}/some_tarball-{{ tarball_version }}.tar.gz"
    dest="/home/{{ deploy_user }}/app/"
    copy=no
  when: new_archive|changed
Run Code Online (Sandbox Code Playgroud)

根据您的环境更改变量.