Ubuntu Weekly Recipe
第294回 仮想化ソフトLXC上でデプロイツールJujuを使う
2013年10月16日
Ubuntu, Linux, LXC, Juju, サービスオーケストレーションツール, デプロイ, ローカル, VPS, Bootstrap, MongoDB, WordPresss, MySQL, OpenStack, HP Cloud, Azure, IaaS
先月公開した第288回では,
Juju on LXC
LXC
Jujuがリリースされた当初も
LXCを使う最大のメリットは,
もちろんOpenStackのバックエンドとしてLXCを使えばJujuから直接LXCを使えなくても同様のことは実現できます。ただしその場合はOpenStackとLXCの組み合わせで
LXC上にデプロイする
第288回の内容に従って,
$ sudo apt-get install juju-local
Ubuntu 12.
$ sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring
「juju init」
local:
type: local
admin-secret: 199a161299f5284867242f40aca1b062
Amazon EC2のときと異なり,
$ juju switch local Changed default environment from "amazon" to "local"
環境設定さえ行えばあとは通常のJujuと使い方は
$ sudo juju bootstrap $ juju deploy wordpress $ juju deploy mysql $ juju add-relation wordpress mysql $ juju expose wordpress
1点異なるのは,
デプロイ完了までの時間はマシンに依存します。ただしBootstrapはローカルに存在するので,
lxc-listコマンドやpsコマンドを使えば,
$ sudo lxc-list RUNNING ubuntu-local-machine-1 (auto) ubuntu-local-machine-2 (auto) $ ps afx 29861 ? Ss 0:00 lxc-start --daemon -n ubuntu-local-machine-1 ... 29881 ? Ss 0:00 \_ /sbin/init (中略) 3424 ? Ss 0:00 \_ nginx: master process /usr/sbin/nginx 3426 ? S 0:00 \_ nginx: worker process (中略) 22259 ? Ss 0:00 lxc-start --daemon -n ubuntu-local-machine-2 ... 22265 ? Ss 0:00 \_ /sbin/init (中略) 32611 ? Ssl 0:01 \_ /usr/sbin/mysqld
あとは
- 注1)
- とくに12.
04を使っている場合は, そのままだと古いJujuがインストールされてしまいますので, PPAを使うようにしてください。 - 注2)
- これにより13.
04で採用されているLinxu 3. 8がインストールされます。今後13. 10や14. 04がリリースされ, 12. 04 LTS用のバックポートカーネルが提供されるようになったら, ここでインストールすべきパッケージの名前も変わりますので, 読む時期に合わせて適宜公式のドキュメントを参照するようにしてください。
ホストの外からアクセスする
JujuでデプロイしたWordPressサービスだけホストの外からアクセスできるようにしましょう。この場合に必要になる作業は,
ホストの80番ポートへのアクセスを
$ sudo iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 \ -j DNAT --to-destination 10.0.3.13:80
この時点でホストのアドレスの80番ポートにアクセスすれば,
ちなみにこのままだと再起動を行うとiptablesの設定は破棄されます。再起動後も同じ設定を反映したい場合は,
- 注3)
- リモートマシンのiptablesの設定は,
失敗するとネットワーク越しにアクセスできなくなる可能性があります。 - 注4)
- このままだと
「wordpress/ 0」 のIPアドレスが変わってしまうと動かなくなります。必要に応じて, LXCの特定のインスタンスは静的にアドレスを割り当てるなり, ホスト名で解決できる別の方法を用意すると良いでしょう。 - 注5)
- より
「Ubuntuらしい」 方法を使うのであれば, iptablesを直接設定するのではなく, ufwを使うと良いでしょう。Ubuntu上でufwとLXCをともに使う場合, ブリッジ経由のアクセスをコンテナの中へフォワードできるよう, /etc/ default/ ufwのDEFAULT_ FORWARD_ POLICYを “DROP” から “ACCEPT” に変更することを忘れないでください。
AWSやLXC以外にも
JujuはAWSやLXC以外にも,
このためJujuを使えば,
バックナンバー
Ubuntu Weekly Recipe
- 第651回 AMD Ryzen 3 PRO 4350Gで省エネコンパクトPCを構築する
- 第650回 Ubuntu Coreのインストールを自動化する
- 第649回 Ubuntu Coreの独自イメージを作成する
- 第648回 デスクトップ環境の2020-2021年
- 第647回 Ubuntu CoreなRaspberry PiをUbuntuサーバーとして使う
- 第646回 Raspberry PiをIoTデバイスとして活用できるUbuntu Core
- 第645回 より大きな容量のSSDにデータ移行する
- 第644回 ノート表示にも対応したプレゼンテーションツールPympress
- 第643回 Raspberry Pi 4でデスクトップ版Ubuntu 20.10を使用する
- 第642回 仮想マシン上のmicrok8sからGPUを利用する