26

シェル コマンドが予期した出力を返さないという条件で、Ansible アクションを実行したいと考えています。ogr2ogr --formats互換性のあるファイル形式のリストをきれいに印刷します。フォーマットの出力を grep したいのですが、予想されるファイル フォーマットが出力に含まれていない場合は、コマンドを実行してこれらのコンポーネントをインストールしたいと考えています。誰もこれを行う方法を知っていますか?

- name: check if proper ogr formats set up
  command: ogr2ogr --formats | grep $item
  with_items:
    - PostgreSQL
    - FileGDB
    - Spatialite
  register: ogr_check

# If grep from ogr_check didn't find a certain format from with_items, run this
- name: install proper ogr formats
  action: DO STUFF
  when: Not sure what to do here
4

2 に答える 2

9

私の解決策:

- name: "Get Ruby version"
command: "/home/deploy_user/.rbenv/shims/ruby -v"
changed_when: true
register: ruby_installed_version
ignore_errors: true

- name: "Installing Ruby 2.2.4"
command: '/home/deploy_user/.rbenv/libexec/rbenv install -v {{ruby_version}}'
become: yes
become_user: deployer
when: " ( ruby_installed_version | failed ) or ('{{ruby_version}}' not in ruby_installed_version.stdout) "
于 2016-01-05T11:50:33.107 に答える