user icon

Scalewayに30分でGitHubクローンを建てるよ

GitHubクローン、Gogs(https://gogs.io/)をScalewayに5分で建てるというLTネタができるのでは?
と思ってのにやってみたら30分かかることが判明したでござる(完全敗北)

こんにちプレミアム。公開は月曜日だけど書いているのはフライデー。muraveです。

ここのところ続けて書いている Vagrant + Ansible で Scaleway にサーバーを建てるネタの集大成的な内容です。シナリオは

  • CentOS7 インスタンスを起動
  • CentOS7 基本設定
    • 基本ツール類導入
    • firewalld起動
  • CEFSプロジェクト提供のエラッタに基づきセキュリティアップデート
  • MySQL 5.7 導入
  • Nginx 導入
  • Gogs 導入
  • Gogs 初期設定・インストール(Web画面)
  • 最初のユーザー(管理者)作成
  • テスト用リポジトリ作成
  • リポジトリにpush

Gogsの導入時にNginxのリバースプロキシ設定やSELinuxのポリシーモジュール追加などやってるのでPHP動かしたりするときなどにも色々と参考になると思います(と未来の自分に語りかける)

jmurabe/scaleway-centos7gogs

経過時刻を挿入しつつ vagrant up からの進行状況を貼っていきます。

2017年 9月29日 金曜日 13時20分27秒 JST
開始です。

$ vagrant up             
Bringing machine 'default' up with 'scaleway' provider...
==> default: Creating a server with the following settings...
==> default:  -- Commercial Type: VC1S
==> default:  -- Image: 9103368e-4fab-4243-aa8d-18121796c086
==> default:  -- Name: scw-******
==> default: Starting the server...
==> default: Waiting for server to become "ready"...
==> default: Waiting for SSH to become available...

2017年 9月29日 金曜日 13時22分53秒 JST
インスタンスが起動するのに2分半。

==> default: [vagrant-hostsupdater] Checking for host entries
==> default: Rsyncing folder: /Users/murave/scaleway/gogs/ => /vagrant
==> default: Running provisioner: ansible...

2017年 9月29日 金曜日 13時24分31秒 JST
プロビジョニング開始時で4分が経過。

    default: Running ansible-playbook...

PLAY [all] *********************************************************************

TASK [Gathering Facts] *********************************************************
ok: [default]

TASK [centos7common : add EPEL] ************************************************
changed: [default]

TASK [centos7common : installs] ************************************************
changed: [default] => (item=[u'bind-utils', u'yum-utils', u'git', u'unzip', u'libselinux-python', u'libsemanage-python', u'policycoreutils-python', u'python-pip', u'firewalld'])

TASK [centos7common : running and enabled firewalld] ***************************
changed: [default]

TASK [centos7common : firewalld] ***********************************************
ok: [default]

TASK [centos7secup : install on yum security update] ***************************
changed: [default] => (item=[u'yum-plugin-security', u'createrepo', u'bzip2'])

TASK [centos7secup : check /security exists] ***********************************
ok: [default]

TASK [centos7secup : make /security] *******************************************
changed: [default]

TASK [centos7secup : create repo for CEFS project] *****************************
changed: [default]

TASK [centos7secup : download vmfarms/generate_updateinfo] *********************
changed: [default]

TASK [centos7secup : download CEFS errata.latest.xml.bz2] **********************
changed: [default]

TASK [centos7secup : update CEFS project repo and yum security update] *********
changed: [default]

2017年 9月29日 金曜日 13時31分54秒 JST
セキュリティアップデートおわったー。11分半経過。

TASK [mysql : install mysql57 repository] **************************************
changed: [default]

TASK [mysql : install on mysql] ************************************************
changed: [default] => (item=[u'mysql-community-server', u'MySQL-python'])

TASK [mysql : run and enable mysqld] *******************************************
changed: [default]

TASK [mysql : check /root/.my.cnf exists] **************************************
ok: [default]

TASK [mysql : get root temporary password] *************************************
changed: [default]

TASK [mysql : change root password] ********************************************
changed: [default]

TASK [mysql : deploy /root/.my.cnf] ********************************************
changed: [default]

TASK [mysql : deploy /etc/.my.cnf] *********************************************
changed: [default]

TASK [mysql : remove anonymous mysql_user] *************************************
ok: [default]

TASK [mysql : restart mysqld] **************************************************
changed: [default]

2017年 9月29日 金曜日 13時37分33秒 JST
MySQL導入(基本状態)、17分経過。

TASK [nginx : install nginx] ***************************************************
changed: [default]

TASK [nginx : running and enabled nginx] ***************************************
changed: [default]

TASK [nginx : firewalld] *******************************************************
changed: [default]

TASK [nginx : firewalld] *******************************************************
changed: [default]

2017年 9月29日 金曜日 13時39分00秒 JST
Nginx導入(基本状態)、18分半経過。

TASK [gogs : add git user] *****************************************************
changed: [default]

TASK [gogs : create mysql database for gogs] ***********************************
changed: [default]

TASK [gogs : create mysql user for gogs] ***************************************
changed: [default]

TASK [gogs : download gogs zip] ************************************************
changed: [default]

TASK [gogs : debug] ************************************************************
ok: [default] => {
    "msg": "/home/git/linux_amd64_0.11.29.zip was downloaded"
}

TASK [gogs : unarchive gogs zip] ***********************************************
changed: [default]

TASK [gogs : cp gogs.service to /etc/systemd/system/] **************************
changed: [default]

TASK [gogs : running and enabled gogs] *****************************************
changed: [default]

TASK [gogs : copy nginx.conf(location deleted)] ********************************
changed: [default]

TASK [gogs : check gogs.conf] **************************************************
ok: [default]

TASK [gogs : set selinux's httpd_can_network_connect on] ***********************
ok: [default]

TASK [gogs : copy ssh_keygen_test.pp (custom policy module)] *******************
changed: [default]

TASK [gogs : install ssh_keygen_test.pp] ***************************************
changed: [default]

TASK [gogs : copy gogs.conf and restart nginx] *********************************
changed: [default]

RUNNING HANDLER [gogs : restart nginx] *****************************************
changed: [default]

PLAY RECAP *********************************************************************
default                    : ok=41   changed=33   unreachable=0    failed=0   

2017年 9月29日 金曜日 13時44分08秒 JST
Gogsの導入まで完了しました。23分半。

IP確認のために vagrant ssh-config

$ vagrant ssh-config
Host default
  HostName ***.***.***.***
  User root
  Port 22
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /Users/murave/.ssh/id_rsa
  IdentitiesOnly yes
  LogLevel FATAL

ブラウザでアクセスすると初期設定・インストール画面が表示されます。

  • MySQLのユーザをgogsに変更し、パスワードには.envのGOGS_MYSQL_PWに設定した文字列を入力
  • ドメイン、アプリケーションのURLをIPベースで入力(とりあえず)。
    • NginxでリバースプロキシしているのでURLの3000番ポート指定ははずしてください。
  • 「Gogsをインストール」をクリック

起動しました。

右上の「登録」から最初のユーザーを作成します。このユーザーは管理者になります。

ログインしてテスト用リポジトリを作成します。

画面の通りにコマンドラインで新しいリポジトリを作成してpushします。

2017年 9月29日 金曜日 13時49分32秒 JST
ということで、約29分でのゴールでした。

Facebooktwittergoogle_pluslinkedintumblrmail

タグ: , , ,

名前
E-mail
URL
コメント