tag:crieit.net,2005:https://crieit.net/users/Yakoi/feed Yakoiの投稿 - Crieit CrieitでユーザーYakoiによる最近の投稿 2020-12-16T21:23:51+09:00 https://crieit.net/users/Yakoi/feed tag:crieit.net,2005:PublicArticle/16375 2020-12-16T21:23:51+09:00 2020-12-16T21:23:51+09:00 https://crieit.net/posts/GCP-GROWI-03 GCPにGROWIを構築する 03 独自ドメイン設定 <p>Qrunch 2019-02-26 投稿記事</p> <p><a href="https://crieit.net/posts/GCP-GROWI-02">https://crieit.net/posts/GCP-GROWI-02</a>の続き。</p> <h2 id="ドメイン取得"><a href="#%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E5%8F%96%E5%BE%97">ドメイン取得</a></h2> <p>Freenomでドメイン取得。<br /> いろいろなところで解説されているので省略。<br /> ここでは「sample.tk」を取得したと仮定して話を進める。</p> <h2 id="サーバ設定"><a href="#%E3%82%B5%E3%83%BC%E3%83%90%E8%A8%AD%E5%AE%9A">サーバ設定</a></h2> <p>サーバにはいり、~/growi/docker-compose.ymlを修正。<br /> ポート80でhttpアクセスできるように、services/app/portsを変更。<br /> コロンの左がDockerの外で右がDockerの中かな。間違えないように。</p> <pre><code class="yaml">version: '3' services: app: build: context: . dockerfile: ./Dockerfile ports: - 80:3000 # localhost only by default links: - mongo:mongo - elasticsearch:elasticsearch depends_on: - mongo - elasticsearch environment: - MONGO_URI=mongodb://mongo:27017/growi - ELASTICSEARCH_URI=http://elasticsearch:9200/growi - PASSWORD_SEED=changeme # - FILE_UPLOAD=local # activate this line if you use local storage of server rather than AWS # - MATHJAX=1 # activate this line if you want to use MathJax # - PLANTUML_URI=http:// # activate this line and specify if you use your own PlantUML server rather than public plantuml.com # - HACKMD_URI=http:// # activate this line and specify HackMD server URI which can be accessed from GROWI client browsers # - HACKMD_URI_FOR_SERVER=http://hackmd:3000 # activate this line and specify HackMD server URI which can be accessed from this server container command: "dockerize -wait tcp://mongo:27017 -wait tcp://elasticsearch:9200 -timeout 60s npm run server:prod" restart: unless-stopped volumes: - growi_data:/data mongo: image: mongo:3.4 ports: - 27017:27017 # command: mongod --bind_ip 0.0.0.0 restart: unless-stopped volumes: - mongo_configdb:/data/configdb - mongo_db:/data/db elasticsearch: image: elasticsearch:5.3-alpine environment: - "ES_JAVA_OPTS=-Xms256m -Xmx256m" # increase amount if you have enough memory command: - sh - -c - "./bin/elasticsearch-plugin list | grep -q analysis-kuromoji || ./bin/elasticsearch-plugin install analysis-kuromoji; ./bin/elasticsearch-plugin list | grep -q analysis-icu || ./bin/elasticsearch-plugin install analysis-icu; /docker-entrypoint.sh elasticsearch" restart: unless-stopped volumes: - es_data:/usr/share/elasticsearch/data - es_plugins:/usr/share/elasticsearch/plugins - ./esconfig:/usr/share/elasticsearch/config volumes: growi_data: mongo_configdb: mongo_db: es_data: es_plugins: </code></pre> <h2 id="DNS設定"><a href="#DNS%E8%A8%AD%E5%AE%9A">DNS設定</a></h2> <p>GCPコンソールより、ネットワークサービス→Cloud DNSを選択<br /> ゾーンの作成から新規ゾーンを作成。<br /> ゾーンの詳細の「レコードセットを追加」ボタンから、Aレコードを追加。サーバのIPアドレスを指定してやります。<br /> サーバのIPアドレスは「VPCネットワーク」→「外部IPアドレス」にて取得してあるはず。<br /> 最終設定はこちら。</p> <p>| DNS 名 | タイプ | TTL(秒) | データ |<br /> | ----------------- | ------ | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |<br /> | sample.tk. | NS | 21600 | ns-cloud-e1.googledomains.com. ns-cloud-e2.googledomains.com. ns-cloud-e3.googledomains.com. ns-cloud-e4.googledomains.com. |<br /> | sample.tk. | SOA | 21600 | ns-cloud-e1.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300 |<br /> | wiki.sample.tk. | A | 300 | xxx.xxx.xxx.xxx |<br /> <img src="https://s3.qrunch.io/58e019e9b3a534612fa9b8988337ec49.jpg" alt="undefined.jpg" /></p> <p>FreenomでNameserversの設定をしてやります。<br /> Management Tools→Namerserversで設定できます。<br /> <img src="https://s3.qrunch.io/de852b172fa5e18ed7d2224993968651.jpg" alt="undefined.jpg" /><br /> Use custom nameserversを選択し、5つのテキストボックスのうち4つをGCP画面の4つのネームサーバに設定します。<br /> <img src="https://s3.qrunch.io/1d0e5c0b695de1b5bae2621970e768ec.jpg" alt="undefined.jpg" /></p> <p>以上で、<a target="_blank" rel="nofollow noopener" href="http://wiki.sample.tk">http://wiki.sample.tk</a>でつながるようになるはずです。</p> Yakoi tag:crieit.net,2005:PublicArticle/16374 2020-12-16T21:14:49+09:00 2020-12-16T21:23:37+09:00 https://crieit.net/posts/GCP-GROWI-02 GCPにGROWIを構築する 02 サーバの設定 <p>Qrunch 2019-02-24 投稿記事</p> <p><a href="https://crieit.net/posts/GCP-GROWI-01-GCP">https://crieit.net/posts/GCP-GROWI-01-GCP</a>の続き。</p> <h2 id="サーバの設定"><a href="#%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AE%E8%A8%AD%E5%AE%9A">サーバの設定</a></h2> <h3 id="何はともあれ"><a href="#%E4%BD%95%E3%81%AF%E3%81%A8%E3%82%82%E3%81%82%E3%82%8C">何はともあれ</a></h3> <pre><code class="bash">sudo apt update sudo apt upgrade -y </code></pre> <h3 id="スワップ領域の確保"><a href="#%E3%82%B9%E3%83%AF%E3%83%83%E3%83%97%E9%A0%98%E5%9F%9F%E3%81%AE%E7%A2%BA%E4%BF%9D">スワップ領域の確保</a></h3> <p>現状のスワップ領域の確認。</p> <pre><code class="bash">free -m total used free shared buff/cache available Mem: 579 180 148 0 250 302 Swap: 0 0 0 </code></pre> <p>スワップ領域の確保をする。<br /> elasticsearchが4Gほど使うとか聞いたことがあるので、多めに。<br /> 時間がかかる。</p> <pre><code class="bash">sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile </code></pre> <p>4GB確保されていることを確認。</p> <pre><code class="bash">free -m total used free shared buff/cache available Mem: 579 253 44 0 281 231 Swap: 4095 0 4095 </code></pre> <p>永続化。</p> <pre><code>sudo sed -i '$ a /swapfile swap swap defaults 0 0' /etc/fstab </code></pre> <h3 id="Dockerインストール"><a href="#Docker%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">Dockerインストール</a></h3> <p>Dockerインストール。</p> <pre><code>curl -fsSL https://get.docker.com/ | sh </code></pre> <p>Docker自動起動設定。</p> <pre><code class="bash">sudo systemctl enable docker </code></pre> <h3 id="Docker Composeインストール"><a href="#Docker+Compose%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">Docker Composeインストール</a></h3> <p>途中にDocker Composeのバージョンが必要なので、できれば公式サイトを参照。<br /> <a target="_blank" rel="nofollow noopener" href="https://docs.docker.com/compose/install/">https://docs.docker.com/compose/install/</a><br /> コマンドだけメモしておく。</p> <pre><code class="bash">sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose </code></pre> <h3 id="周辺ツールインストール"><a href="#%E5%91%A8%E8%BE%BA%E3%83%84%E3%83%BC%E3%83%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">周辺ツールインストール</a></h3> <p>入っていなければ。OS選択時にUbuntu Minimalを選択していた場合は必要。<br /> git,neovim(vimでいいやん)</p> <pre><code class="bash">sudo apt install git -y sudo apt install neovim -y </code></pre> <h3 id="GROWIダウンロード"><a href="#GROWI%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89">GROWIダウンロード</a></h3> <pre><code class="bash">git clone https://github.com/weseek/growi-docker-compose.git growi </code></pre> <h3 id="GROWI設定"><a href="#GROWI%E8%A8%AD%E5%AE%9A">GROWI設定</a></h3> <pre><code class="bash">cd growi vim docker-compose.yml </code></pre> <p>vimでportsを編集。<br /> 初期状態だとローカルホストのみになっている。</p> <pre><code class="yaml">version: '3' services: app: build: context: . dockerfile: ./Dockerfile ports: - 3000:3000 # localhost only by default links: - mongo:mongo - elasticsearch:elasticsearch depends_on: - mongo - elasticsearch environment: - MONGO_URI=mongodb://mongo:27017/growi - ELASTICSEARCH_URI=http://elasticsearch:9200/growi - PASSWORD_SEED=changeme # - FILE_UPLOAD=local # activate this line if you use local storage of server rather than AWS # - MATHJAX=1 # activate this line if you want to use MathJax # - PLANTUML_URI=http:// # activate this line and specify if you use your own PlantUML server rather than public plantuml.com # - HACKMD_URI=http:// # activate this line and specify HackMD server URI which can be accessed from GROWI client browsers # - HACKMD_URI_FOR_SERVER=http://hackmd:3000 # activate this line and specify HackMD server URI which can be accessed from this server container command: "dockerize -wait tcp://mongo:27017 -wait tcp://elasticsearch:9200 -timeout 60s npm run server:prod" restart: unless-stopped volumes: - growi_data:/data mongo: image: mongo:3.4 restart: unless-stopped volumes: - mongo_configdb:/data/configdb - mongo_db:/data/db elasticsearch: image: elasticsearch:5.3-alpine environment: - "ES_JAVA_OPTS=-Xms256m -Xmx256m" # increase amount if you have enough memory command: - sh - -c - "./bin/elasticsearch-plugin list | grep -q analysis-kuromoji || ./bin/elasticsearch-plugin install analysis-kuromoji; ./bin/elasticsearch-plugin list | grep -q analysis-icu || ./bin/elasticsearch-plugin install analysis-icu; /docker-entrypoint.sh elasticsearch" restart: unless-stopped volumes: - es_data:/usr/share/elasticsearch/data - es_plugins:/usr/share/elasticsearch/plugins - ./esconfig:/usr/share/elasticsearch/config volumes: growi_data: mongo_configdb: mongo_db: es_data: es_plugins: </code></pre> <h3 id="GROWIインストール起動"><a href="#GROWI%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E8%B5%B7%E5%8B%95">GROWIインストール起動</a></h3> <p>初回は必要なプログラムのダウンロード、インストールが行われる。</p> <pre><code class="bash">sudo docker-compose up -d </code></pre> <p>エラーが起きなければいいね。<br /> 状態確認。</p> <pre><code class="bash">sudo docker ps </code></pre> <h2 id="動作確認"><a href="#%E5%8B%95%E4%BD%9C%E7%A2%BA%E8%AA%8D">動作確認</a></h2> <p>コンソール接続元のブラウザに戻り、「GCPにGROWIを構築する 01」で取得した<br /> 外部IPアドレスにポート3000で接続。処理が終わっても実際につながるようになるまで数分かかるので気長に待つ。<br /> 例:<a target="_blank" rel="nofollow noopener" href="http://1.2.3.4:3000/">http://1.2.3.4:3000/</a></p> <p>初回ログイン画面が表示されれば成功。お疲れ様!<br /> <img src="https://s3.qrunch.io/6f1e4b5d383b8bb6a2858c3ff79678ff.jpg" alt="undefined.jpg" /></p> <h2 id="残作業"><a href="#%E6%AE%8B%E4%BD%9C%E6%A5%AD">残作業</a></h2> <ul> <li>HTTPS対応</li> <li>ドメイン持ち込み</li> </ul> <h2 id="参考サイト(Thank you!)"><a href="#%E5%8F%82%E8%80%83%E3%82%B5%E3%82%A4%E3%83%88%28Thank+you%21%29">参考サイト(Thank you!)</a></h2> <ul> <li>https://www.karelie.net/free-fast-wordpress-site-kusanagi-docker/</li> <li>https://docs.docker.com/compose/install/</li> <li>http://exrecord.net/how-to-install-growi-using-docker-compose/</li> </ul> Yakoi tag:crieit.net,2005:PublicArticle/16265 2020-12-06T16:08:39+09:00 2020-12-06T16:10:09+09:00 https://crieit.net/posts/GCP-GROWI-01-GCP GCPにGROWIを構築する 01 GCPの設定 <p>Qrunch 2019-02-23 投稿記事</p> <hr /> <p>GCP(Google Cloud Platform)の無料枠内で、今イケてる社内wiki「GROWI」を動かしたときのメモです。</p> <h2 id="GCPの設定"><a href="#GCP%E3%81%AE%E8%A8%AD%E5%AE%9A">GCPの設定</a></h2> <h3 id="Googleアカウントの作成、GCPの利用登録"><a href="#Google%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%81%AE%E4%BD%9C%E6%88%90%E3%80%81GCP%E3%81%AE%E5%88%A9%E7%94%A8%E7%99%BB%E9%8C%B2">Googleアカウントの作成、GCPの利用登録</a></h3> <p>省略します。</p> <h3 id="プロジェクトの作成"><a href="#%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AE%E4%BD%9C%E6%88%90">プロジェクトの作成</a></h3> <p>「プロジェクトの選択」クリック。<br /> <img src="https://s3.qrunch.io/617172816dc76bb23737547d85bd8bf2.jpg" alt="undefined.jpg" /></p> <p>「新しいプロジェクト」クリック。<br /> <img src="https://s3.qrunch.io/bb68b2bbcfc84c54bc143eaa61068734.jpg" alt="undefined.jpg" /></p> <p>内容は適当に。「作成」クリック。<br /> <img src="https://s3.qrunch.io/2b484089991484e4ed2e340706845f38.jpg" alt="undefined.jpg" /></p> <h3 id="VMインスタンス作成"><a href="#VM%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E4%BD%9C%E6%88%90">VMインスタンス作成</a></h3> <p>あらためて「プロジェクトの選択」から、先ほど作成したプロジェクトをクリック。</p> <p>メニューから「Compute Engine」「VMインスタンス」をクリック。<br /> <img src="https://s3.qrunch.io/b6e550609906a392e8a588752d23f7d6.jpg" alt="undefined.jpg" /></p> <p>VMインスタンス画面の「作成」をクリック。</p> <p>いろいろ変更することがあるので注意。<br /> 1. 名前を適当に変更。<br /> 1. リージョンをus-west1に変更。usリージョンの一部のみが無料の対象とのこと。<br /> 1. ゾーンは適当にus-west1-bに変更。<br /> 1. マシンタイプを「micro (共有 vCPU x 1)」に変更。</p> <p>ここまで変更すると、右側の説明に「今月の f1-micro インスタンス使用量は、最初の 672 時間分が無料です。」と表示される。<br /> <img src="https://s3.qrunch.io/0b3dc45e487ddab296f8f0dd8f76b42e.jpg" alt="undefined.jpg" /></p> <p>ブートディスクの「変更」をクリック。<br /> <img src="https://s3.qrunch.io/fe626bdcc394f6012f43d27b18da2ccd.jpg" alt="undefined.jpg" /></p> <p>OSを選択。今回は「Ubuntu 18.10 Minimal」にしました。<br /> また、サイズは無料で使える限界の30GBに設定。<br /> <img src="https://s3.qrunch.io/4328081965950fcfaa8aad2f779bea9d.jpg" alt="undefined.jpg" /></p> <p>HTTP/HTTPS トラフィックを許可するようチェック。<br /> その後、「作成」をクリック。<br /> <img src="https://s3.qrunch.io/093f5280084b76db3950e4ed8c8712a8.jpg" alt="undefined.jpg" /></p> <h3 id="外部IPアドレス予約"><a href="#%E5%A4%96%E9%83%A8IP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E4%BA%88%E7%B4%84">外部IPアドレス予約</a></h3> <p>「VPCネットワーク」「外部IPアドレス」を選択。<br /> <img src="https://s3.qrunch.io/dbf02a06fea6bed1c6c53b64fd607932.jpg" alt="undefined.jpg" /></p> <p>「静的アドレスを予約」をクリック。<br /> <img src="https://s3.qrunch.io/63016dfe938f7d3d784b40287bd5d786.jpg" alt="undefined.jpg" /></p> <p>名前と説明は適当に。<br /> リージョンはVMインスタンスと同じにする。すると接続先にVMインスタンス名が表示されるため、それを選ぶ。<br /> ここで無料のVMインスタンスに紐づけしないと、外部IPアドレスの分だけ課金されるらしいので注意。<br /> 「予約」をクリックして確定。<br /> <img src="https://s3.qrunch.io/cf85ca4e78af1a6117f621e87de43337.jpg" alt="undefined.jpg" /></p> <h3 id="ファイアウォールルール設定"><a href="#%E3%83%95%E3%82%A1%E3%82%A4%E3%82%A2%E3%82%A6%E3%82%A9%E3%83%BC%E3%83%AB%E3%83%AB%E3%83%BC%E3%83%AB%E8%A8%AD%E5%AE%9A">ファイアウォールルール設定</a></h3> <p>「ファイアウォールルール」をクリック。<br /> <img src="https://s3.qrunch.io/094b0e2e973cf5750e85ce5bc10c0cac.jpg" alt="undefined.jpg" /></p> <p>「default-allow-http」をクリック。<br /> <img src="https://s3.qrunch.io/b6cfd5823a60379e8fc0f7f4986cc63a.jpg" alt="undefined.jpg" /></p> <p>「編集」をクリック。<br /> <img src="https://s3.qrunch.io/da9e4f39cda760559fcff06d6dc0309f.jpg" alt="undefined.jpg" /></p> <p>一番下「プロトコルとポート」に<code>tcp:80</code>と設定されているが、<br /> <code>tcp:80; tcp:3000</code>に変更する。<br /> GROWIはデフォルトで3000ポートを使用するため。</p> <p>以上でGCPの画面で行う設定は終わり。「Compute Engine」「VMインスタンス」を選択し、<br /> VMインスタンス一覧の接続列にある「SSH」をクリック。コンソールが立ち上がる。<br /> 以降はコンソールでの設定。</p> Yakoi tag:crieit.net,2005:PublicArticle/14828 2019-02-21T22:10:04+09:00 2019-02-21T22:14:26+09:00 https://crieit.net/posts/0314ae98d35a6cc5fc89773e36be3935 これはテストです <h1 id="これはテストなの!"><a href="#%E3%81%93%E3%82%8C%E3%81%AF%E3%83%86%E3%82%B9%E3%83%88%E3%81%AA%E3%81%AE%EF%BC%81">これはテストなの!</a></h1> <p>だから真面目に受け止めちゃダメなの!!</p> <ul> <li>できればVimバインドがほしい</li> </ul> <pre><code class="c">#include <stdio> int main(){ print("Hello world!"); return 0; } </code></pre> <pre><code class="haxe">import haxe; class Main { public static function main() { trace("Hello world!"); } } </code></pre> Yakoi