ansible で yum localinstall
意外と苦戦したのでメモ。
rpm をアップロードした後、yum を使うのだが、 with_items だと警告が出まくる上に、依存関係でインストール失敗することもある。
こうしたい↓
yum install /usr/local/src/hoge.rpm /usr/local/src/fuga.rpm /usr/local/src/piyo.rpm
が、接頭辞として /usr/local/src を付与する方法が意外と大変だった。
結果として、set_fact からの regexp で解決。
var: software_rpm: - software1.2.3-4.rpm - software2.4.rpm rpm_dir: /usr/local/src/ tasks: - name: deploy rpm file copy: src: 'rpm/{{ item }}' dest: '{{ rpm_dir }}' owner: root group: root mode: "0644" force: no backup: no with_items: '{{ software_rpm }}' - set_fact: rpm_list: "{{ software_rpm | map( 'regex_replace','^','{{ rpm_dir }}' ) | list }}" - name: install postgres packages yum: name: "{{ rpm_list }}" state: present