{"id":3253,"date":"2019-08-11T16:50:50","date_gmt":"2019-08-11T07:50:50","guid":{"rendered":"https:\/\/column.prime-strategy.co.jp\/?p=3253"},"modified":"2019-08-11T16:50:50","modified_gmt":"2019-08-11T07:50:50","slug":"kusanagi-%e3%81%a7-gitlab%e3%82%92%e5%8b%95%e3%81%8b%e3%81%97%e3%81%a6%e3%81%bf%e3%82%88%e3%81%862%ef%bc%88%e5%ae%ae%e5%b4%8e%e6%82%9f%e6%b0%8f%ef%bc%89","status":"publish","type":"post","link":"https:\/\/kusanagi.tokyo\/column\/archives\/column_3253","title":{"rendered":"KUSANAGI \u3067 GitLab\u3092\u52d5\u304b\u3057\u3066\u307f\u3088\u3046(2)\uff08\u5bae\u5d0e\u609f\u6c0f\uff09"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">\u524d\u56de\u306e\u304a\u3055\u3089\u3044<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u524d\u56de\u306f\u3001KUSANAGI for Vagrant\u3067Ruby\u7528\u306e\u74b0\u5883\u3092\u4f5c\u6210\u3057\u3001GitlLab\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u307e\u3067\u7d42\u308f\u308a\u307e\u3057\u305f\u3002<br>\n\u4eca\u56de\u306f\u3001GitLab\u306e\u8a2d\u5b9a\u3092\u884c\u3044\u3001KUSANAGI\u3067\u63d0\u4f9b\u3059\u308bpostgresql+pgpoo lI\u3068\u3001NGINX\u3092\u4f7f\u7528\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Postgresql_%E3%81%AE%E8%A8%AD%E5%AE%9A%E7%A2%BA%E8%AA%8D\"><\/span>Postgresql \u306e\u8a2d\u5b9a\u78ba\u8a8d<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u73fe\u5728\u3001KUSANAGI\u3067\u63d0\u4f9b\u3057\u3066\u3044\u308bPostgreql\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306f9.6\u3067\u3059\u3002\u3053\u308c\u3092pgpool-II-pg10 \u3068\u7d44\u307f\u5408\u308f\u305b\u3066\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30d7\u30fc\u30ea\u30f3\u30b0(\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u78ba\u7387\u306e\u30aa\u30fc\u30d0\u30d8\u30c3\u30c9\u306e\u6e1b\u5c11)\u3084\u30c7\u30fc\u30bf\u30ea\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3001\u8ca0\u8377\u5206\u6563\u3001\u6700\u5927\u63a5\u7d9a\u6599\u5236\u5fa1\u3001\u81ea\u52d5\u30d5\u30a7\u30a4\u30eb\u30aa\u30fc\u30d0\u30fc\u306a\u3069\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<br>\n\u524d\u56de\u5b9f\u65bd\u3057\u305f\u3001kusanagi init \u3067 pgsql\u3092\u6307\u5b9a\u3057\u3066\u3044\u308b\u305f\u3081\u3001\u305d\u306e\u969b\u306b\u6307\u5b9a\u3057\u305fDB\u8a2d\u5b9a\u3067pgpool-II\u3092\u610f\u8b58\u3059\u308b\u3053\u3068\u306a\u304fpostgresql DB\u3078\u63a5\u7d9a\u53ef\u80fd\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>source export.txt\nexport PGPASSWORD=$DBROOTPASS\n$ psql -h localhost -Upostgres\npsql (9.6.14)\n\"help\" \u3067\u30d8\u30eb\u30d7\u3092\u8868\u793a\u3057\u307e\u3059.\n\npostgres=# <\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"GitLab%E3%81%B8%E3%81%AE%E8%A8%AD%E5%AE%9A\"><\/span>GitLab\u3078\u306e\u8a2d\u5b9a<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">KUSANAGI\u3068Gitlab\u306b\u306f\u3001\u5171\u901a\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u3068\u3057\u3066NGINX\/Postgresql\/Ruby+Rails \u306a\u3069\u304c\u3042\u308a\u307e\u3059\u3002\u3044\u308d\u3044\u308d\u691c\u8a3c\u3057\u305f\u7d50\u679c\u3001NGINX\/Postgreql \u306fKUSANAGI\u306e\u3082\u306e\u3092\u8a66\u7528\u3057\u3001Rails\u305d\u306e\u4ed6\u30b5\u30fc\u30d3\u30b9\u3092GitLab\u306e\u3082\u306e\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">gitlab\u3078\u306e\u8a2d\u5b9a\u306f\u3001\/etc\/gitlab\/gitlab.rb \u3078\u306e\u8ffd\u8a18\u3067\u884c\u3044\u307e\u3059\u3002<a href=\"https:\/\/docs.gitlab.com\/omnibus\/README.html#configuring\">Gitlab\u306e\u8a2d\u5b9a\u30de\u30cb\u30e5\u30a2\u30eb(\u82f1\u8a9e)<\/a>\u3092\u57fa\u306b\u4ee5\u4e0b\u306e\u3088\u3046\u306b\/etc\/gitlab\/gitlab.rb \u306e\u672b\u5c3e\u306b\u8ffd\u8a18\u3057\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001Gitlab\u306eNGINX\u3068Postgresql\u3092\u7121\u52b9\u306b\u3057\u3001Gitlab\u304cKUSANAGI\u306ePostgresql\u3092\u4f7f\u7528\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ source export.txt\n$ cat &lt;&lt;EOT |  sudo tee -a \/etc\/gitlab\/gitlab.rb > \/dev\/null\nnginx['enable'] = false\ngitlab_rails['internal_api_url'] = '$SITE_DOMAIN'\nweb_server['external_users'] = ['httpd']\n\ngitlab_rails['internal_api_url'] = 'http:\/\/$SITE_DOMAIN'\n\npostgresql['enable'] = false\ngitlab_rails['db_adapter'] = 'postgresql'\ngitlab_rails['db_encoding'] = 'utf8'\ngitlab_rails['db_host'] = '127.0.0.1'\ngitlab_rails['db_port'] = 5432\ngitlab_rails['db_username'] = 'postgres'\ngitlab_rails['db_password'] = '$DBROOTPASS'\ngitlab_rails['auto_migrate'] = false\nEOT<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0a\u8a18\u8a2d\u5b9a\u3092\u884c\u3063\u305f\u3042\u3068\u3001root\u6a29\u9650\u3067<code>gitlab-ctl reconfigure<\/code>\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"NGINX%E3%81%AE%E8%A8%AD%E5%AE%9A\"><\/span>NGINX\u306e\u8a2d\u5b9a<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u6700\u521d\u306fKUSANAGI\u3067Rails\u74b0\u5883\u3092provision\u3057\u3066Passenger\u3092\u4f7f\u7528\u3059\u308b\u3064\u3082\u308a\u3067\u3057\u305f\u3002\u3057\u304b\u3057\u3001GitLab\u306b\u542b\u307e\u308c\u308bRuby\u3068\u30e1\u30b8\u30e3\u30fc\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u7570\u306a\u308a\u3001Passenger\u304c\u5bfe\u5fdc\u3057\u3066\u3044\u306a\u3044\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u3057\u305f\u3002\u305d\u306e\u305f\u3081\u3001KUSANAGI\u304c\u63d0\u4f9b\u3059\u308b Ruby+Passenger \u3092\u8ae6\u3081\u3001Gitlab\u306eunicorn socket\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"nginxconf_%E3%81%AE%E8%A8%AD%E5%AE%9A\"><\/span>nginx.conf \u306e\u8a2d\u5b9a<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\/etc\/nginx\/nginx.conf \u306e\u3001<code>include conf.d\/*.conf<\/code>\u4ee5\u4e0b\u3092\u524a\u9664\u3057\u3001\u4ee5\u4e0b\u306e\u8a2d\u5b9a\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ cat  nginx.tmpl \n\n    proxy_cache_path \/var\/cache\/nginx\/gitlab keys_zone=gitlab:10m max_size=1g levels=1:2;\n    proxy_cache gitlab;\n\n    map $http_upgrade $connection_upgrade {\n        default upgrade;\n        ''      close;\n    }\n\n    # Remove private_token from the request URI\n    # In:  \/foo?private_token=unfiltered&amp;authenticity_token=unfiltered&amp;rss_token=unfiltered&amp;...\n    # Out: \/foo?private_token=[FILTERED]&amp;authenticity_token=unfiltered&amp;rss_token=unfiltered&amp;...\n    map $request_uri $temp_request_uri_1 {\n        default $request_uri;\n        ~(?i)^(?&lt;start>.*)(?&lt;temp>[\\?&amp;]private[\\-_]token)=[^&amp;]*(?&lt;rest>.*)$ \"$start$temp=[FILTERED]$rest\";\n    }\n\n    # Remove authenticity_token from the request URI\n    # In:  \/foo?private_token=[FILTERED]&amp;authenticity_token=unfiltered&amp;rss_token=unfiltered&amp;...\n    # Out: \/foo?private_token=[FILTERED]&amp;authenticity_token=[FILTERED]&amp;rss_token=unfiltered&amp;...\n    map $temp_request_uri_1 $temp_request_uri_2 {\n        default $temp_request_uri_1;\n        ~(?i)^(?&lt;start>.*)(?&lt;temp>[\\?&amp;]authenticity[\\-_]token)=[^&amp;]*(?&lt;rest>.*)$ \"$start$temp=[FILTERED]$rest\";\n    }\n\n    # Remove rss_token from the request URI\n    # In:  \/foo?private_token=[FILTERED]&amp;authenticity_token=[FILTERED]&amp;rss_token=unfiltered&amp;...\n    # Out: \/foo?private_token=[FILTERED]&amp;authenticity_token=[FILTERED]&amp;rss_token=[FILTERED]&amp;...\n    map $temp_request_uri_2 $filtered_request_uri {\n        default $temp_request_uri_2;\n        ~(?i)^(?&lt;start>.*)(?&lt;temp>[\\?&amp;]rss[\\-_]token)=[^&amp;]*(?&lt;rest>.*)$ \"$start$temp=[FILTERED]$rest\";\n    }\n\n    # A version of the referer without the query string\n    map $http_referer $filtered_http_referer {\n        default $http_referer;\n        ~^(?&lt;temp>.*)\\? $temp;\n    }\n\n    upstream gitlab-unicorn {\n        server unix:\/\/\/var\/opt\/gitlab\/gitlab-rails\/sockets\/gitlab.socket;\n    }\n\n    include \/etc\/nginx\/conf.d\/*.conf;\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"gitlab_conf%E3%81%AE%E8%A8%AD%E5%AE%9A\"><\/span>gitlab_*.conf\u306e\u8a2d\u5b9a<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\/etc\/nginx\/conf.d\/gitlab_http.conf\u304a\u3088\u3073gitlab_ssl.conf \u306e<code>root<\/code>\u6587\u4ee5\u4e0b\u3092\u524a\u9664\u3057\u3001\u4ee5\u4e0b\u306e\u8a2d\u5b9a\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f\u3002gitlab\u306e\u63a8\u5968\u8a2d\u5b9a\u306b\u624b\u3092\u52a0\u3048\u3066\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ cat gitlab_nginx.tmpl \n        location = \/favicon.ico {\n                log_not_found off;\n                access_log off;\n        }\n\n        location ~* \/\\.well-known {\n                allow all;\n        }\n\n        location ~* \/\\. {\n                deny all;\n        }\n\n        location ~* \\.(jpg|jpeg|gif|png|css|js|swf|ico|pdf|svg|eot|ttf|woff)$ {\n                expires 60d;\n                access_log off;\n        }\n\n        ## https:\/\/github.com\/gitlabhq\/gitlabhq\/issues\/694\n        ## Some requests take more than 30 seconds.\n        proxy_read_timeout        3600;\n        proxy_connect_timeout   300;\n        proxy_redirect            off;\n        proxy_http_version 1.1;\n\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n        proxy_set_header X-Forwarded-Host $host;\n        proxy_set_header X-Forwarded-Server $host;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection $connection_upgrade;\n\n        location ~ (.git\/git-receive-pack$|.git\/info\/refs?service=git-receive-pack$|.git\/gitlab-lfs\/objects|.git\/info\/lfs\/objects\/batch$) {\n                proxy_cache off;\n                proxy_pass  http:\/\/gitlab-unicorn;\n                proxy_request_buffering off;\n        }\n\n        location \/-\/grafana\/ {\n                add_header X-Signature KUSANAGI;\n                proxy_pass http:\/\/localhost:3000\/;\n        }\n\n        location \/ {\n                add_header X-Signature KUSANAGI;\n                proxy_cache off;\n                proxy_pass  http:\/\/gitlab-unicorn;\n        }\n\n        location \/assets {\n                add_header X-Signature KUSANAGI;\n                proxy_cache gitlab;\n                proxy_pass  http:\/\/gitlab-unicorn;\n        }\n\n        error_page 404 \/404.html;\n        error_page 500 \/500.html;\n        error_page 502 \/502.html;\n        location ~ ^\/(404|500|502)(-custom)?\\.html$ {\n                root \/opt\/gitlab\/embedded\/service\/gitlab-rails\/public;\n                internal;\n        }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u5f8c\u3001root\u6a29\u9650\u3067<code>nginx -t<\/code>\u3092\u5b9f\u884c\u3057\u3001\u554f\u984c\u306a\u3044\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"gitlab_%E7%94%BB%E9%9D%A2%E3%81%AE%E8%A1%A8%E7%A4%BA\"><\/span>gitlab \u753b\u9762\u306e\u8868\u793a<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\/etc\/hosts\u306bgitlab.localdomain \u3092\u8ffd\u8a18\u3057\u3001\u30d6\u30e9\u30a6\u30b6\u3092\u958b\u304f\u3068\u4ee5\u4e0b\u306e\u753b\u9762\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"gitlab_initial.png\" alt=\"gitlab\u521d\u671f\u753b\u9762\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u3042\u3068\u306f\u3001\u7ba1\u7406\u8005\u6a29\u9650\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u6253\u3063\u3066gitlab\u306e\u4f5c\u696d\u3092\u59cb\u3081\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E3%81%BE%E3%81%A8%E3%82%81\"><\/span>\u307e\u3068\u3081<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0a\u8a18\u306e\u4f5c\u696d\u3092Vagrantfile\u3067\u5b9f\u65bd\u53ef\u80fd\u3067\u3059\u3002nginx\u3078\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u30b3\u30d4\u30fc\u3059\u308b\u3053\u3068\u3067\u7701\u529b\u5316\u3057\u3066\u3044\u307e\u3059\u3002<br>\n\u524d\u56de\u3068\u306e\u9055\u3044\u306f\u3001Rails\u3092\u4f7f\u3046\u5fc5\u8981\u304c\u306a\u304f\u306a\u3063\u305f\u306e\u3067\u3001kusanagi provision \u3067 lamp\u74b0\u5883\u3092\u4f5c\u6210\u3057\u3066\u3044\u308b\u3053\u3068\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ cat Vagrantfile\nVagrant.configure(\"2\") do |config|\n  # The most common configuration options are documented and commented below.\n  # For a complete reference, please see the online documentation at\n  # https:\/\/docs.vagrantup.com.\n\n  # Every Vagrant development environment requires a box. You can search for\n  # boxes at https:\/\/vagrantcloud.com\/search.\n  config.vm.box = \"primestrategy\/kusanagi\"\n\n  config.vm.network \"forwarded_port\", guest: 22, host: 8022, id: \"ssh\"\n  config.vm.network \"private_network\", ip: \"192.168.34.21\"\n\n  config.vm.provider \"virtualbox\" do |vb|\n    # Display the VirtualBox GUI when booting the machine\n    # vb.gui = true\n    # Customize the amount of memory on the VM:\n    vb.customize [\"modifyvm\", :id, \"--natdnsproxy1\", \"on\"]\n    vb.customize [\"modifyvm\", :id, \"--natdnshostresolver1\", \"on\"]\n    vb.customize [\"modifyvm\", :id, \"--usb\", \"off\"]\n    vb.customize [\"modifyvm\", :id, \"--usbehci\", \"off\"]\n    vb.customize [\"modifyvm\", :id, \"--audio\", \"none\"]\n    vb.customize ['modifyvm', :id, '--cableconnected1', 'on']\n\n    vb.memory = \"4096\"\n  end\n  config.vm.provision \"file\", source: \".\/gitlab_nginx.tmpl\", destination: \"\/tmp\/gitlab_nginx.tmpl\"\n  config.vm.provision \"file\", source: \".\/nginx.tmpl\", destination: \"\/tmp\/nginx.tmpl\"\n  config.vm.provision \"shell\", inline: &lt;&lt;-SHELL\n    cat \/tmp\/id_edcsa.pub >> \/home\/vagrant\/.ssh\/authorized_keys\n    rm \/tmp\/id_edcsa.pub\n    KUSANAGI_PASSWORD=$(mkpasswd -l 20)\n    DBROOTPASS=$(mkpasswd -s 0 -l 20)\n    SITE_DOMAIN=gitlab.localdomain\n    DBNAME=a$(mkpasswd -s 0 -l 10 -C 0)\n    DBUSER=a$(mkpasswd -s 0 -l 10 -C 0)\n    DBPASS=$(mkpasswd -s 0 -l 20)\n    cat &lt;&lt;EOT > export.txt\nexport TERM=xterm\nexport KUSANAGO_PASSWORD=\\\"$KUSANAGI_PASSWORD\\\"\nexport DBROOTPASS=\\\"$DBROOTPASS\\\"\nexport SITE_DOMAIN=$SITE_DOMAIN\nexport DBNAME=$DBNAME\nexport DBUSER=$DBUSER\nexport DBPASS=\"\\$DBPASS\\\"\nexport EMAILOPTION=--no-email\nexport PROFILE=gitlab\nEOT\n\n        set -x\n    source export.txt\n    sudo yum clean all\n    sudo yum update -y\n    sudo yum install -y jq\n    yes 1 | sudo kusanagi init --tz tokyo --lang en --keyboard en --passwd \"$KUSANAGI_PASSWORD\" --no-phrase --dbrootpass \"$DBROOTPASS\" --php7 --nginx --ruby24 --dbsystem psql\n    sudo kusanagi provision --lamp --fqdn $SITE_DOMAIN $EMAILOPTION --dbname $DBNAME --dbuser $DBUSER --dbpass \"$DBPASS\" $PROFILE\n        sudo yum install -y postgresql96-contrib\n\n    curl https:\/\/packages.gitlab.com\/install\/repositories\/gitlab\/gitlab-ce\/script.rpm.sh | sudo bash\n    sudo EXTERNAL_URL=\"http:\/\/$SITE_DOMAIN\" yum install -y gitlab-ce\n   echo \"\nnginx['enable'] = false\ngitlab_rails['internal_api_url'] = '$SITE_DOMAIN'\nweb_server['external_users'] = ['httpd']\n\ngitlab_rails['internal_api_url'] = 'http:\/\/$SITE_DOMAIN'\n\npostgresql['enable'] = false\ngitlab_rails['db_adapter'] = 'postgresql'\ngitlab_rails['db_encoding'] = 'utf8'\ngitlab_rails['db_host'] = '127.0.0.1'\ngitlab_rails['db_port'] = 5432\ngitlab_rails['db_username'] = 'postgres'\ngitlab_rails['db_password'] = '$DBROOTPASS'\ngitlab_rails['auto_migrate'] = false\n\" | sudo tee -a \/etc\/gitlab\/gitlab.rb > \/dev\/null\n\n    sudo mkdir -m700 \/var\/cache\/nginx\/gitlab\n    sudo chmod httpd \/var\/cache\/nginx\/gitlab\n    cd \/tmp\n        sudo sed -i -e '\/root\/,\\$d' -e '\/client_max_body_size\/r .\/gitlab_nginx.tmpl' \/etc\/nginx\/conf.d\/${PROFILE}_http.conf\n        sudo sed -i -e '\/root\/,\\$d' -e '\/client_max_body_size\/r .\/gitlab_nginx.tmpl' \/etc\/nginx\/conf.d\/${PROFILE}_ssl.conf\n        sudo sed -i -e '59,62d' \/etc\/nginx\/nginx.conf\n        cat nginx.tmpl | sudo tee -a \/etc\/nginx\/nginx.conf >\/dev\/null\n    sudo gitlab-ctl reconfigure || true\n        sudo rm -rf \/opt\/gitlab\/embedded\/postgresql\/*\n        export PATH=\/opt\/gitlab\/bin:\/opt\/gitlab\/embedded\/:$PATH\n        yes yes | sudo \/opt\/gitlab\/bin\/gitlab-rake gitlab:setup\n    rm \/tmp\/gitlab_nginx.tmpl \/tmp\/nginx.tmpl\n    sudo reboot\n  SHELL\nend<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306eVagrantfile\u3001nginx.tmpl \u3001gitlab_nginx.tmpl \u3092\u4f7f\u7528\u3057\u3066\u3001\u81ea\u52d5\u7684\u306bKUSANAGI+Gitlab\u306e\u74b0\u5883\u3092\u4f5c\u6210\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6b63\u76f4\u3001Gitlab\u306enginx\u306f\u5c11\u3057\u53e4\u3044\u30d0\u30fc\u30b8\u30e7\u30f3\u306a\u306e\u3067\u3001NGINX\u306e\u65b0\u3057\u3044\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u826f\u3051\u308c\u3070\u3053\u306e\u69cb\u6210\u3067\u826f\u3044\u3068\u601d\u3044\u307e\u3059\u3002\u305f\u3060\u3001\u624b\u9593\u306f\u304b\u304b\u308b\u306e\u3067Gitlab\u3092\u4f7f\u3044\u305f\u3044\u4eba\u306fDocker\u306a\u3069\u3067Gitlab\u3092\u69cb\u7bc9\u3059\u308b\u307b\u3046\u304c\u697d\u3060\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3067\u306f\u3001\u6b21\u56de\u3092\u304a\u697d\u3057\u307f\u306b\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u524d\u56de\u306e\u304a\u3055\u3089\u3044 \u524d\u56de\u306f\u3001KUSANAGI for Vagrant\u3067Ruby\u7528\u306e\u74b0\u5883\u3092\u4f5c\u6210\u3057\u3001GitlLab\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u307e\u3067\u7d42\u308f\u308a\u307e\u3057\u305f\u3002  ... <a title=\"KUSANAGI \u3067 GitLab\u3092\u52d5\u304b\u3057\u3066\u307f\u3088\u3046(2)\uff08\u5bae\u5d0e\u609f\u6c0f\uff09\" class=\"read-more\" href=\"https:\/\/kusanagi.tokyo\/column\/archives\/column_3253\" aria-label=\"KUSANAGI \u3067 GitLab\u3092\u52d5\u304b\u3057\u3066\u307f\u3088\u3046(2)\uff08\u5bae\u5d0e\u609f\u6c0f\uff09 \u306b\u3064\u3044\u3066\u3055\u3089\u306b\u8aad\u3080\">Read more<\/a><\/p>\n","protected":false},"author":4,"featured_media":2267,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[],"tags":[],"series":[],"journey":[],"product":[],"class_list":["post-3253","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-33","no-featured-image-padding"],"_links":{"self":[{"href":"https:\/\/kusanagi.tokyo\/column\/wp-json\/wp\/v2\/posts\/3253","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kusanagi.tokyo\/column\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kusanagi.tokyo\/column\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kusanagi.tokyo\/column\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/kusanagi.tokyo\/column\/wp-json\/wp\/v2\/comments?post=3253"}],"version-history":[{"count":0,"href":"https:\/\/kusanagi.tokyo\/column\/wp-json\/wp\/v2\/posts\/3253\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kusanagi.tokyo\/column\/wp-json\/wp\/v2\/media\/2267"}],"wp:attachment":[{"href":"https:\/\/kusanagi.tokyo\/column\/wp-json\/wp\/v2\/media?parent=3253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kusanagi.tokyo\/column\/wp-json\/wp\/v2\/categories?post=3253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kusanagi.tokyo\/column\/wp-json\/wp\/v2\/tags?post=3253"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/kusanagi.tokyo\/column\/wp-json\/wp\/v2\/series?post=3253"},{"taxonomy":"journey","embeddable":true,"href":"https:\/\/kusanagi.tokyo\/column\/wp-json\/wp\/v2\/journey?post=3253"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/kusanagi.tokyo\/column\/wp-json\/wp\/v2\/product?post=3253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}