InfraWorkHack-day-03 -Install redmine- ==== # 前回までのあらすじ - いっぱいあるけどまずは目に見えるところからやろう - redmineのインストールその他 # 目次 ・redmineをインストール ・redmineを自宅でも使うしかねえ ・RoRの仕組みがわからなくてエラーが対応できない ・バックアップ運用は後回し ・その他ふわふわ考え事 # redmine インストール ということで、Redmineインストール手順です。 ちょっとしたプラグインも含みます。 ログから漁ったので途中抜けてるところがあるかも。 ## 事前にやること ### プラグインのダウンロード https://www.easyredmine.com/redmine-gantt-plugin ⇒GETFREEで必要事項を入れて入手 メールでダウンロード用のURLが送られてきます。 ## インストール環境 centos 7 Redmine 3.4 ## selinux無効化 まず、selinux を無効化します。 完全に隔離されたプライベート環境なので許して。 ```bash: # getenforce Enforcing # sed -e 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux > /tmp/selinux # diff /etc/sysconfig/selinux /tmp/selinux # mv /tmp/selinux /etc/sysconfig/selinux ``` ### 再起動 ```bash: # reboot ``` ## firewalldの操作 httpdを許可します。 デフォルトだとpublicになっているので環境に合わせて変えてください。 iptableに慣れ切ってるので、firewalldは正直かなり戸惑いました。 ``` # firewall-cmd --zone=public --add-service=http --permanent # firewall-cmd --reload # firewall-cmd --zone=public --list-services ``` ## redmineのインストール さて、ここから本番。 個人的にはbitnamiでもよいと思ってますし、bitnamiのも使ってます。 ### パッケージのインストール ``` sudo yum grouplist sudo yum -y groupinstall base "Development Tools" --setopt=group_package_types=mandatory,default,optional sudo yum -y install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel libffi-devel sudo yum -y install postgresql postgresql-server postgresql-devel sudo yum -y install httpd httpd-devel sudo yum -y install ImageMagick ImageMagick-devel ipa-pgothic-fonts ``` ### rubyのインストール rubyは標準のはダメっぽいのでソースから引っ張ってきます。 ``` curl -O https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.1.tar.gz tar -xvzf ruby-2.4.1.tar.gz cd ruby-2.4.1/ ./configure --disable-install-doc make make install ruby -v ``` ### bundlerのインストール ``` # gem install bundler --no-rdoc --no-ri Fetching: bundler-1.16.1.gem (100%) Successfully installed bundler-1.16.1 1 gem installed # postgresql-setup initdb Initializing database ... OK # vi /var/lib/pgsql/data/pg_hba.conf # Put your actual configuration here # ---------------------------------- # # If you want to allow non-local connections, you need to add more # "host" records. In that case you will also need to make PostgreSQL # listen on a non-local interface via the listen_addresses # configuration parameter, or via the -i or -h command line switches. host redmine redmine 127.0.0.1/32 md5 host redmine redmine ::1/128 md5 ``` ### postgresqlの開始と有効化 ``` systemctl start postgresql.service systemctl enable postgresql.service ``` ``` cd /var/lib/pgsql # sudo -u postgres createuser -P redmine 新しいロールのためのパスワード: もう一度入力してください: ``` ``` # sudo -u postgres createdb -E UTF-8 -l ja_JP.UTF-8 -O redmine -T template0 redmine ``` ### redmineのインストール ``` # svn co https://svn.redmine.org/redmine/branches/3.4-stable /var/lib/redmine # cd /var/lib/redmine/ # vi config/database.yml production: adapter: postgresql database: redmine host: localhost username: redmine password: "決められたパスワードを入力" encoding: utf8 ``` メールの設定はご自由に ``` # vi config/configuration.yml production: email_delivery: delivery_method: :smtp smtp_settings: address: "localhost" port: 25 domain: "example.com" rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf ``` ``` # cd /var/lib/redmine/ # bundle install --without development test --path vendor/bundle # bundle exec rake generate_secret_token # RAILS_ENV=production bundle exec rake db:migrate # RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data # gem install passenger -v 5.1.12 --no-rdoc --no-ri # passenger-install-apache2-module --snippet LoadModule passenger_module /usr/local/lib/ruby/gems/2.4.0/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /usr/local/lib/ruby/gems/2.4.0/gems/passenger-5.1.12 PassengerDefaultRuby /usr/local/bin/ruby </IfModule> # vi /etc/httpd/conf.d/redmine.conf <Directory "/var/lib/redmine/public"> Require all granted </Directory> LoadModule passenger_module /usr/local/lib/ruby/gems/2.4.0/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /usr/local/lib/ruby/gems/2.4.0/gems/passenger-5.1.12 PassengerDefaultRuby /usr/local/bin/ruby </IfModule> PassengerMaxPoolSize 20 PassengerMaxInstancesPerApp 4 PassengerPoolIdleTime 864000 PassengerStatThrottleRate 10 Header always unset "X-Powered-By" Header always unset "X-Runtime" Alias /redmine /var/lib/redmine/public <Location /redmine> PassengerBaseURI /redmine PassengerAppRoot /var/lib/redmine </Location> # chown -R apache:apache /var/lib/redmine # gem install passenger -v 5.1.12 --no-rdoc --no-ri # passenger-install-apache2-module --auto --languages ruby # passenger-install-apache2-module ``` ## プラグインのインストール ## easy_gantt ``` # wget "<URL>" -O easy_gantt.zip # tar -xvzf easy_gantt.tgz # mv easy_gantt /var/lib/redmine/plugins/ # chown -R apache:apache /var/lib/redmine/plugins/easy_gantt/ # cd /var/lib/redmine # bundle install # bundle exec rake db:migrate NAME=easy_gantt_tree RAILS_ENV=production # bundle exec rake redmine:plugins NAME=easy_gantt RAILS_ENV=production ``` ## redmine_issues_tree ``` # git clone https://github.com/Loriowar/redmine_issues_tree.git # mv redmine_issues_tree/ /var/lib/redmine/plugins/ # cd /var/lib/redmine/ # bundle install # bundle exec rake db:migrate NAME=redmine_issues_tree RAILS_ENV=production # bundle exec rake redmine:plugins NAME=redmine_issues_tree RAILS_ENV=production ``` ## redmine_work_time ``` # git clone https://github.com/tkusukawa/redmine_work_time.git # mv redmine_work_time/ plugins/ # bundle install # bundle exec rake db:migrate NAME=redmine_work_time RAILS_ENV=production # bundle exec rake redmine:plugins NAME=redmine_work_time RAILS_ENV=production ``` ## httpd起動 ``` # systemctl start httpd # systemctl enable httpd ``` あとは、http://<URL>/redmine へアクセス これでインストールまでは行けます。 ### 残項目 ・メール周りの設定 ・バックアップ運用 # インストール周りでRuby関連の復習 ちょっと詰まったのはこの辺。 - gem = だいたいpip - bundle = gem依存関係+バージョン指定(Gemfile) - bundle install --path vendor/bundle とかでプロジェクトごとにパッケージを入れることができる。 - bundle exec rake プロジェクト単位に指定したライブラリを読みだす # redmine on home とにかくもっと慣れるために家で使ってやれ! ってことで家ではbitnamiで立ててやってみてます。 ちなみに担当者の名前は偽名です(笑) ![](https://i.imgur.com/Qq1PDDM.png) # バックアップ運用は? 後回し。とりありずここにあることだけマークして、そのうちバックアップ、 復旧手順などを試してみます。データベースの情報をすべて復旧すれば大丈夫なのかな? [http://redmine.jp/faq/system_management/backup/] # 今回の思いつき ・他の人の教育どうしよう(まずbashとgitかな?) ・gitea入れて見たら ・ansibleやるったらやる