Ansible オフラインのノードにyumしたら外部に接続しようとした

# 環境

Ansible実行サーバ

```bash
$ cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)

$ ansible --version
ansible 2.9.7
```

ノード(オフライン)

```bash
$ cat /etc/redhat-release
CentOS release 6.6 (Final)
```

# やりたいこと

1. ``libxslt-1.1.26-2.el6_3.1.x86_64.rpm``をリモートの``/root/repo/libxslt-1.1.26-2.el6_3.1.x86_64.rpm``に配置
2. ``yum``モジュールを使ってローカルインストール

# 失敗例

```yml:test/tasks/main.yml
# rpm ファイル配置
- name: put rpm
  copy:
    src:   "libxslt-1.1.26-2.el6_3.1.x86_64.rpm"
    dest:  "/root/repo/libxslt-1.1.26-2.el6_3.1.x86_64.rpm"
    owner: "root"
    group: "root"
    mode:  "0644"

# いんすとーる
- name: install pkg
  yum:
    name: "/root/repo/libxslt-1.1.26-2.el6_3.1.x86_64.rpm"
    state: present
```

実行結果

```bash
$ ansible-playbook -i develop -l develop -u root test.yml
:(省略)
TASK [test : put rpm] **********************************************************************************************************************************************************************************************************
changed: [192.168.56.2]

TASK [test : install pkg] *********************************************************************************************************************************************************************************************************
fatal: [192.168.56.2]: FAILED! => {"changed": false, "changes": {"installed": ["/root/repo/libxslt-1.1.26-2.el6_3.1.x86_64.rpm"]}, "msg": "http://mirror.centos.org/centos/6/os/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 6 - \"Couldn't resolve host 'mirror.centos.org'\"\nTrying other mirror.\nError: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again\n", "rc": 1, "results": ["Loaded plugins: fastestmirror\nSetting up Install Process\nExamining /root/repo/libxslt-1.1.26-2.el6_3.1.x86_64.rpm: libxslt-1.1.26-2.el6_3.1.x86_64\nMarking /root/repo/libxslt-1.1.26-2.el6_3.1.x86_64.rpm to be installed\nLoading mirror speeds from cached hostfile\n"]}

PLAY RECAP *************************************************************************************************************************************************************************************************************************
192.168.56.2               : ok=1    changed=1    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0
```

# 解決例

リモートサーバの``/etc/yum.repos.d/*.repo``が邪魔してた。ローカルリポジトリにする手もあったけど、今後別の人が触ったときに扱いに困るかもしれん＆オフライン環境なんだから外部接続repo使わねーだろってことで削除した。

```yml:test/tasks/main.yml
# yum リポジトリファイルリスト取得
- name: find yum.repos.d
  find:
    paths:    "/etc/yum.repos.d"
    patterns: "*.repo"
  register:   "repo_list"

# yum リポジトリファイル削除
- name: delete yum.repos.d s file
  file:
    path:  "{{ item.path }}"
    state: absent
  with_items: "{{ repo_list.files }}"

# rpm ファイル配置
- name: put rpm
  copy:
    src:   "libxslt-1.1.26-2.el6_3.1.x86_64.rpm"
    dest:  "/root/repo/libxslt-1.1.26-2.el6_3.1.x86_64.rpm"
    owner: "root"
    group: "root"
    mode:  "0644"

# いんすとーる
- name: install pkg
  yum:
    name: "/root/repo/libxslt-1.1.26-2.el6_3.1.x86_64.rpm"
    state: present
```

事前にすでに``yum``コマンドを使ったことある場合は``yum clean all``する必要があると思うんで、リポジトリファイル削除をトリガーに``command``を実行するのも良いかも。