Ansible playbook for deploy PyCon JP 2018 Website in Debian server.
THIS SCRIPT MAY DAMAGE YOUR SYSTEM, DO NOT USE IT IF YOU ARE NOT UNCERTAIN!!!
- Debian 9 (stretch)
- OpenSSH
- Python 3
- UN*X Based OS (or WSL on Windows 10)
- Ansible >= 2.6 - OpenSSH - Python 3 or Python 2.7
- Who can operates Linux internet server correctly
以下、内容を読んで操作方法が理解できることが必要条件のため、あえて具体的なコマンドは書きません。
- Debian 9をインストール (またはインスタンスを起動)
- 以下のパッケージをインストール - openssh-server - python3
- sshd_configを以下のように設定する - rootユーザでログインできるように - Password認証でログインできないように
- クライアントで生成したssh公開鍵を、サーバのrootのauthorized_keysに追加する
- Ansibleをインストールする (pipでインストール可能)
- ~/.ssh/configでIdentitiFileを適切に設定する
- Ansibleのhostsファイルの[pyconjp]セクションにサーバのホスト名を設定する または~/.ssh/configの設定をhostsに合わせる
- group_vars/all.yml内のdeploybranch行を、pycon.jp.2018リポジトリ内のデプロイ対象にしたいbranch名に設定する
ansible-playbook -i hosts site.yml
操作はpyconjpユーザ権限で行う。rootでログインしている場合は、su - pyconjpを先に行う。
- デプロイ完了した時点で、最新版のサイトがDockerで起動し、port 4000でlistenする
- 起動: docker-compose start
- 終了: docker-compose stop
- アップデート: /opt/workspace/update-web.sh
- /opt/workspace/pyconjp-2018/docker-compose.yml を編集し、GIT_BRANCH 環境変数を書き換える
- /opt/workspace/update-web.sh を実行する