Skip to content

pyconjp/pyconjp-ansible

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pyconjp-ansible

このリポジトリについて

  • pycon.jp のサーバー構成を管理するためのansibleのリポジトリです
  • pycon.jp のサーバーはAWS EC2上で動作しており、主に以下のサービスが動いています
    • 過去のPyCon JPイベントのWebサイト(静的ファイル)とnginx
    • pyconjpbot(PyCon JP Slack上のbot)
    • jira-issue-report(JIRAの期限切れチケットを毎週通知するプログラム)
    • pyconjp-cron(PyCon JP用のさまざまな定期実行するプログラム群)
  • 参考: 20210107 pycon.jpサイト移行レクチャー会

ログインやユーザー設定

  • origin.pycon.jp にログインするユーザーはroles/users/vars/main.ymlのファイルで管理されています。
  • GitHubのユーザー名およびGitHubに登録してある公開鍵を用いてユーザーを作成します。
  • (GitHubに登録した公開鍵は誰でもみることができます。 参考: https://github.com/rmanzoku.keys

ログインユーザーを追加したい場合

  • GitHubで公開鍵を設定し、JIRAで起票し Slack #common-infra にて依頼してください。
pyconjpサーバへのログインユーザー作成以来

GitHubユーザー名: ○○
目的: 〇〇

ログインする場合

  • sshコマンドでログインしてください。
  • ログイン名は申請したGitHubユーザー、GitHubに登録している公開鍵に対応した秘密鍵でログインしてください。
$ ssh origin.pycon.jp -l GITHUB_USERNAME

パスワードを変更をするには、ログイン後に以下のコマンドを実行してください。

$ sudo passwd GITHUB_USERNAME

Ansibleの実行

  • 事前に上記ユーザーを作成を依頼し、担当者からansible-vault用のパスワードを教えてもらってください。
  • ansible-vault用のパスワードは「PyCon JP Associationアカウント等秘密情報」シートに記述してあります。(PyCon JP Association理事のみがアクセス可能です)

再構築手順

  • 各自の任意の方法でPythonの実行環境を作成してください。
  • 推奨するPythonのバージョンは.python-versionに書いてありますが、ansibleが実行できれば問題ありません。
  • ansibleを含むライブラリをインストールします。
$ cd pyconjp-ansible
$ python3.9 -m venv env
$ . env/bin/activate
(env) $ pip install -r requirements.txt
  • vaultのパスワードを隠しファイルに入力します。
(env) $ echo $VAULT_PASS > .vault_password_file
  • Ansible-playbookを実行してサーバへ設定を反映させることができるようになります。
(env) $ ansible-playbook pyconjp.yml -u GITHUB_USERNAME

Webサイトの更新

  • 現在配信しているページは全て静的サイトになっているため、サーバ上の所定のパスへgit pullする(そしてCloudFront反映)で更新可能です。
  • 詳しくはroles/web-2020/tasks等を参照しください。
  • ansible経由でmaster branchの更新が可能です。
# `w2020` の部分は開催年を指定してください
(env) $ ansible-playbook pyconjp.yml -t w2020

その後、キャッシュされているので、すぐ更新したい場合はCloudFrontのInvalidation(キャッシュ削除)で /2020/* 等で消します

pyconjpbotの更新

  • pyconjpbotを更新するコマンドです。
  • 設定値等はroles/pyconjpbot/tasks | varsで管理されています。
  • ansible経由でmaster branchの更新が可能です。
  • pip及びソースコードの更新が実行されます。
(env) $ ansible-playbook pyconjp.yml -t bot

pyconjp-cronの更新

  • pyconjp-cronを更新するコマンドです。
  • 設定値及びCronの設定はroles/pyconjp-cron/tasks | varsで管理されています。
  • ansible経由でmaster branchの更新が可能です。
  • pip及びソースコードの更新が実行されます。
(env) $ ansible-playbook pyconjp.yml -t cron

jira-issue-reportの更新

  • jira-issue-reportを更新するコマンドです。
  • 設定値及びCronの設定はroles/jira-issue-report/tasks | varsで管理されています。
  • ansible経由でmaster branchの更新が可能です。
  • pip及びソースコードの更新が実行されます。
(env) $ ansible-playbook pyconjp.yml -t jira-issue-report

About

pycon.jp設定用のansible

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published