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
- 第715回 Lenovo ThinkPad X13 Gen2 AMDにUbuntu 22.04 LTSをインストールして使用する
- 第714回 Firefoxを含むsnapパッケージとの付き合い方
- 第713回 Ubuntu 22.04 LTSの新機能,リモートデスクトップのRDPサポートを使用する
- 第712回 Ubuntu 22.04 LTSの変更点
- 第711回 Ryzen 5 5500Uで省エネPC生活
- 第710回 Snap版Firefoxを使用しないでやり過ごす
- 第709回 CodiMDでMarkdownをウェブブラウザーから共同編集する
- 第708回 GUIでネットワーク設定を行う
- 第707回 シンプルでおしゃれなモニタリングツールUptime Kuma
- 第706回 Ubuntuでも10ギガ(10Gbps)インターネットを体験してみる
関連記事
- 2022年2月9日 StarlingX ―OpenStackの流れを汲むエッジコンピューティングのオープンソースプラットフォーム
- 2022年1月28日号 jammyの開発/Ubuntu Proのデスクトップ展開,“PwnKit”脆弱性,GPD Pocket3用のUbuntu Mate
- 2021年10月1日号 impishのFinal BetaとTesting Week(といろいろなバグ),シェルスクリプトをsnapパッケージにする方法
- 2021年9月3日号 『JJ』のリリーススケジュール・x32向けコンフィグのドロップ
- OSSを活用し高可用性と低価格を両立──PacemakerによるHAクラスタ