GitHubクローン、Gogs(https://gogs.io/)をScalewayに5分で建てるというLTネタができるのでは?
と思ってのにやってみたら30分かかることが判明したでござる(完全敗北)
こんにちプレミアム。公開は月曜日だけど書いているのはフライデー。muraveです。
ここのところ続けて書いている Vagrant + Ansible で Scaleway にサーバーを建てるネタの集大成的な内容です。シナリオは
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
ブラウザでアクセスすると初期設定・インストール画面が表示されます。
起動しました。
右上の「登録」から最初のユーザーを作成します。このユーザーは管理者になります。
ログインしてテスト用リポジトリを作成します。
画面の通りにコマンドラインで新しいリポジトリを作成してpushします。
2017年 9月29日 金曜日 13時49分32秒 JST
ということで、約29分でのゴールでした。