[Ansible][Ubuntu][apt] source.listを国内のミラーサーバーに変更する

Ansibleでリポジトリを国内のミラーサーバーに変更する方法メモ

# 国内ミラーサーバー一覧
## Ubuntu Japanese Team
[日本国内のダウンロードサイト | Ubuntu Japanese Team](http://www.ubuntulinux.jp/ubuntu/mirrors)


## launchpad.net/ubuntu
以下からJapanで検索してもよいかと思います。
[Mirrors : Ubuntu](https://launchpad.net/ubuntu/+archivemirrors)

# Ansibleの実装例

Ansibleのreplaceモジュールを使用して、参照リポジトリの書き換えを行います。
以下は例として、jaistのミラーサーバーに書き換えています。

```yaml:playbook.yml
- hosts: all
  become: yes
  tasks:
    - name: update apache.conf
      replace:
        path: /etc/apt/sources.list
        regexp: 'http://archive.ubuntu.com/ubuntu'
        replace: 'http://ftp.jaist.ac.jp/pub/Linux/ubuntu/'
        backup: yes
```

この後に、aptでパッケージを取得するtaskを書くと思うんですが、その際に `update_cache=yes` をつけるようにして下さい。あと、書き換え直後のtaskでは `cache_valid_time` オプションの指定はつけないほうが良いかもしれないです。

```yaml:aptでインストールを行う例
    - name: install language-pack-ja
      apt: name={{ item }} update_cache=yes
      with_items:
        - language-pack-ja
```


[replace — Ansible Documentation](http://docs.ansible.com/ansible/replace_module.html)
[apt — Ansible Documentation](http://docs.ansible.com/ansible/apt_module.html)

# 備考
## 変更前のsource.list
```bash:/etc/apt/source.list(Ubuntu16.04)
# # Note, this file is written by cloud-init on first boot of an instance
# # modifications made here will not survive a re-bundle.
# # if you wish to make changes you can:
# # a.) add 'apt_preserve_sources_list: true' to /etc/cloud/cloud.cfg
# #     or do the same in user-data
# # b.) add sources in /etc/apt/sources.list.d
# # c.) make changes to template file /etc/cloud/templates/sources.list.tmpl

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://archive.ubuntu.com/ubuntu xenial main restricted
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted

# # Major bug fix updates produced after the final release of the
# # distribution.
deb http://archive.ubuntu.com/ubuntu xenial-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu xenial-updates main restricted

# # N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
# # team. Also, please note that software in universe WILL NOT receive any
# # review or updates from the Ubuntu security team.
deb http://archive.ubuntu.com/ubuntu xenial universe
deb-src http://archive.ubuntu.com/ubuntu xenial universe
deb http://archive.ubuntu.com/ubuntu xenial-updates universe
deb-src http://archive.ubuntu.com/ubuntu xenial-updates universe

# # N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
# # team, and may not be under a free licence. Please satisfy yourself as to
# # your rights to use the software. Also, please note that software in
# # multiverse WILL NOT receive any review or updates from the Ubuntu
# # security team.
deb http://archive.ubuntu.com/ubuntu xenial multiverse
deb-src http://archive.ubuntu.com/ubuntu xenial multiverse
deb http://archive.ubuntu.com/ubuntu xenial-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu xenial-updates multiverse

# # N.B. software from this repository may not have been tested as
# # extensively as that contained in the main release, although it includes
# # newer versions of some applications which may provide useful features.
# # Also, please note that software in backports WILL NOT receive any review
# # or updates from the Ubuntu security team.
deb http://archive.ubuntu.com/ubuntu xenial-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu xenial-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu xenial-security main restricted
deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted
deb http://security.ubuntu.com/ubuntu xenial-security universe
deb-src http://security.ubuntu.com/ubuntu xenial-security universe
deb http://security.ubuntu.com/ubuntu xenial-security multiverse
deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse

# # Uncomment the following two lines to add software from Canonical's
# # 'partner' repository.
# # This software is not part of Ubuntu, but is offered by Canonical and the
# # respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu xenial partner
# deb-src http://archive.canonical.com/ubuntu xenial partner
```

## 変更後のsource.list

```bash:/etc/apt/source.list(Ubuntu16.04)
# # Note, this file is written by cloud-init on first boot of an instance
# # modifications made here will not survive a re-bundle.
# # if you wish to make changes you can:
# # a.) add 'apt_preserve_sources_list: true' to /etc/cloud/cloud.cfg
# #     or do the same in user-data
# # b.) add sources in /etc/apt/sources.list.d
# # c.) make changes to template file /etc/cloud/templates/sources.list.tmpl

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial main restricted
deb-src http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial main restricted

# # Major bug fix updates produced after the final release of the
# # distribution.
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial-updates main restricted
deb-src http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial-updates main restricted

# # N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
# # team. Also, please note that software in universe WILL NOT receive any
# # review or updates from the Ubuntu security team.
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial universe
deb-src http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial universe
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial-updates universe
deb-src http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial-updates universe

# # N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
# # team, and may not be under a free licence. Please satisfy yourself as to
# # your rights to use the software. Also, please note that software in
# # multiverse WILL NOT receive any review or updates from the Ubuntu
# # security team.
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial multiverse
deb-src http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial multiverse
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial-updates multiverse
deb-src http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial-updates multiverse

# # N.B. software from this repository may not have been tested as
# # extensively as that contained in the main release, although it includes
# # newer versions of some applications which may provide useful features.
# # Also, please note that software in backports WILL NOT receive any review
# # or updates from the Ubuntu security team.
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ xenial-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu xenial-security main restricted
deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted
deb http://security.ubuntu.com/ubuntu xenial-security universe
deb-src http://security.ubuntu.com/ubuntu xenial-security universe
deb http://security.ubuntu.com/ubuntu xenial-security multiverse
deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse

# # Uncomment the following two lines to add software from Canonical's
# # 'partner' repository.
# # This software is not part of Ubuntu, but is offered by Canonical and the
# # respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu xenial partner
# deb-src http://archive.canonical.com/ubuntu xenial partner
```

`security.ubuntu.com` に関してはなんとも言えないのでそのままにしています

# 参考
[apt-getの利用リポジトリを日本サーバーに変更する - Qiita](http://qiita.com/fkshom/items/53de3a9b9278cd524099)
[Ubuntu日本語フォーラム / UPDATEトラブル](https://forums.ubuntulinux.jp/viewtopic.php?id=5943)