ubunutの初期リポジトリからapt-getでnginxをインストールすると、残念ながらだいぶ遅れたnginxがインストールされます。
2016/3/12 本稿の手順をansibleで書いた場合の参考例を追加しました。
マニュアルインストール編
最新版をインストールするには、以下の3つがあります。
- ソースからコンパイル
- PPAからインストール
- 公式nginxをリポジトリに追加
1はconfigureとか色々とやることが多いので2か3を使いたいところです。
また、PPAは正直何が混入されているかわからないので、最終的には3の公式の最新版を使いたい訳です。
ということで、今回は、3の方法でインストールする方法です。
# (1) nginxサイトが配布するPGPキーを追加
curl http://nginx.org/keys/nginx_signing.key | sudo apt-key add -
# (2) リポジトリを一覧に追加
VCNAME=`cat /etc/lsb-release | grep DISTRIB_CODENAME | cut -d= -f2` && sudo -E sh -c "echo \"deb http://nginx.org/packages/ubuntu/ $VCNAME nginx\" >> /etc/apt/sources.list"
VCNAME=`cat /etc/lsb-release | grep DISTRIB_CODENAME | cut -d= -f2` && sudo -E sh -c "echo \"deb-src http://nginx.org/packages/ubuntu/ $VCNAME nginx\" >> /etc/apt/sources.list"
# (3) アップデート後、nginxをインストール
sudo apt-get update
sudo apt-get install nginx
NOTE
(2)のリポジトリを追加するコマンド内にある"trusty"はお使いのOSに応じ、下表を参考に任意のOSコード名を設定してください。
上記コマンドでOSコード名を自動取得するように修正しました。OSのバージョンを気にせず、コピペでご利用いただけます。
OSバージョン | コード名 |
---|---|
10.04 | lucid |
12.04 | precise |
14.04 | trusty |
14.10 | Utopic |
15.04 | vivid |
15.10 | wily |
16.04 | xenial |
16.10 | Yakkety |
17.04 | Zesty |
Ansible編
ansibleを使うとOSの情報が取得できるので以下のようなYMLファイルでインストールできます。ANYHOSTのところはよしなに書き換えてください。
ansible便利ですね。
- hosts: ANYHOST
become: yes
vars:
nginx_pgp_url: http://nginx.org/keys/nginx_signing.key
nginx_repository_url: http://nginx.org/packages/ubuntu/
tasks:
- name : Add official nginx PGP key
apt_key: url={{nginx_pgp_url}} state=present
- name : Add official nginx repository
lineinfile : >
dest=/etc/apt/sources.list
line='{{item}} {{nginx_repository_url}} {{ansible_distribution_release}} nginx'
with_items:
- deb
- deb-src
- name : Run apt-get update
apt: update_cache=yes
- name : Install nginx
apt : name=nginx state=present