2018年5月1日火曜日

LXDでBoltとMySQLをインストールしたコンテナ(Ubuntu16.04)を構築する

BoltはPHP製のCMSソフトです。

〇Boltの画面


〇コンテナの構築
LXDで以下のコマンドを実行して、BoltとMySQLがインストールされたコンテナを構築します。
lxc init ubuntu:16.04 bolt
lxc config set bolt user.user-data - < config.yml
lxc start bolt

config.yml
#cloud-config

package_upgrade: true

hostname: bolt
manage_etc_hosts: true

write_files:
  - path: /tmp/bolt.conf
    content: |
      <VirtualHost *:80>
        ServerName <ホストのIP>
        DocumentRoot /opt/bolt/public
        <Directory /opt/bolt/public>
          AllowOverride All
          Require all granted
        </Directory>
      </VirtualHost>

runcmd:
  - "apt-get update"
  - 'echo "mysql-server-5.7 mysql-server/root_password password root" | sudo debconf-set-selections'
  - 'echo "mysql-server-5.7 mysql-server/root_password_again password root" | sudo debconf-set-selections'
  - "apt-get -y install mysql-server-5.7"
  - 'mysql -uroot -proot -e "CREATE DATABASE bolt DEFAULT CHARACTER SET utf8;"'
  - "mysql -uroot -proot -e \"CREATE USER bolt@localhost IDENTIFIED BY 'bolt';\""
  - "mysql -uroot -proot -e \"GRANT ALL PRIVILEGES ON bolt.* TO 'bolt'@'localhost';\""
  - 'mysql -uroot -proot -e "FLUSH PRIVILEGES;"'
  - "apt-get -y install apache2 libapache2-mod-php7.0"
  - "apt-get -y install php7.0-gd php7.0-json php7.0-mysql php7.0-pdo php7.0-curl php7.0-mbstring"
  - "apt-get -y install php7.0-mcrypt php7.0-xml php7.0-zip php7.0-intl"
  - "wget  https://bolt.cm/distribution/bolt-latest.tar.gz"
  - "tar -xzf bolt-latest.tar.gz"
  - "cd bolt-v3.4.*"
  - "php app/nut init"
  - "sed -i -e 's/driver: sqlite/driver: mysql\\n    username: bolt\\n    password: bolt\\n/' ./app/config/config.yml"
  - "cd .."
  - "mv bolt-v3.4.* /opt/bolt"
  - "chown -R www-data:www-data /opt/bolt"
  - "mv /tmp/bolt.conf /etc/apache2/sites-available/bolt.conf"
  - "a2enmod rewrite"
  - "a2ensite bolt.conf"
  - "a2dissite 000-default.conf"
  - "systemctl reload apache2.service"

final_message: "completed."

〇コンテナのIPを調べる
コンテナのIPは以下のコマンドで調べることができます。
lxc list

〇ホストマシンの外部からコンテナにアクセスしたい場合
以下のコマンドを実行します。
PORT=80 PUBLIC_IP=<ホストのIP> CONTAINER_IP=<コンテナのIP> sudo -E bash -c 'iptables -t nat -I PREROUTING -i eth0 -p TCP -d $PUBLIC_IP --dport $PORT -j DNAT --to-destination $CONTAINER_IP:$PORT -m comment --comment "container"'

〇初期設定画面


〇管理者画面


〇コンテナに入る
lxc exec bolt /bin/bash

〇コンテナの停止
lxc stop bolt

〇コンテナの削除
lxc delete bolt


○関連情報
・Boltに関する他の記事はこちらを参照してください。

0 件のコメント:

コメントを投稿