[Infra] Azure를 이용한 레드마인 서버 구축 가이드

김관응·2023년 3월 30일
0

Infra

목록 보기
7/9
post-thumbnail

1. 레드마인 리소스 생성

1-1. VMSS 생성

Azure Portal에서 VMSS를 생성합니다.
Preview the new create experience를 이용하면 일반 VM을 생성하는 것 처럼 할수있습니다.
Network 탭에 Create new nic를 누른 뒤 NIC설정 맨 아래 Public IP adress를 Enabled로 체크합니다. (인스턴스 개별 PIP 할당)
network 탭에 Use a load balancer를 체크합니다. (로드밸런서 사용)
Review + create를 눌러 생성합니다.

1-2.VM 생성

Azure portal에서 VM을 생성합니다.
생성 후 nsg에서 3306포트를 허용해줍니다.

2. 레드마인 설치 스크립트 작성 및 배포

2-1. 레드마인 VMSS에 스크립트로 배포

아래 스크립트를 복사해 .sh 파일로 저장합니다.

#!/bin/bash
wget https://bitnami.com/redirect/to/818538/bitnami-redmine-4.0.5-6-linux-x64-installer.run
yum -y install wget perl-Data-Dumper
chmod 755 bitnami-redmine-4.0.5-6-linux-x64-installer.run
printf '1\ny\ny\ny\ny\n\n\n\n\n\n\n\nkwaneung\nkwaneung.kim@metanet.co.kr\nmsimamizi\n134652as\n134652as\n' | ./bitnami-redmine-4.0.5-6-linux-x64-installer.run
cp /opt/redmine-4.0.5-6/ctlscript.sh /etc/init.d/bitnami-redmine
perl -p -i -e '$.==2 and print "# chkconfig: 2345 80 30\n"' /etc/init.d/bitnami-redmine
perl -p -i -e '$.==3 and print "# description: BitNami Service\n"' /etc/init.d/bitnami-redmine
perl -p -i -e '$.==4 and print "# processname: bitnami-redmine\n"' /etc/init.d/bitnami-redmine
perl -p -i -e '$.==5 and print "# Source funtion library\n"' /etc/init.d/bitnami-redmine
perl -p -i -e '$.==6 and print "./etc/rc.d/init.d/functions\n"' /etc/init.d/bitnami-redmine
chkconfig --add bitnami-redmine
echo '---
#Default setup is given for MySQL with ruby1.9.
#Examples for PostgreSQL, SQLite3 and SQL Server can be found at the end.
#Line indentation must be 2 spaces (no tabs).
production:
  adapter: mysql2
  database: bitnami_redmine
  host: 52.231.65.192
  username: kwan
  password: gahowumifrag
  encoding: utf8
  socket: /opt/redmine-4.0.5-6/mysql/tmp/mysql.sock
development:
  adapter: mysql2
  database: redmine_development
  host: localhost
  username: root
  password: ""
  encoding: utf8
#Warning: The database defined as "test" will be erased and
#re-generated from your development database when you run "rake".
#Do not set this db to the same as development or production.
test:
  adapter: mysql2
  database: redmine_test
  host: localhost
  username: root
  password: ""
  encoding: utf8
#PostgreSQL configuration example
#production:
#adapter: postgresql
#database: redmine
#host: localhost
#username: postgres
#password: "postgres"
#SQLite3 configuration example
#production:
#adapter: sqlite3
#database: db/redmine.sqlite3
#SQL Server configuration example
#production:
#adapter: sqlserver
#database: redmine
#host: localhost
#username: jenkins
#password: jenkins
' > /opt/redmine-4.0.5-6/apps/redmine/htdocs/config/database.yml
/opt/redmine-4.0.5-6/ctlscript.sh restart

생성한 스크립트를 vmss의 블래이드에서 Extensions -> Add -> Custom Script For Linux -> Create
Script files에 스크립트파일을 업로드하고
Command에 커맨드를 입력합니다. (./script.sh)

업데이트 정택에 따라 다르겠지만 스크립트를 작성하고 업데이트를 하게되면 모든 인스턴스에 적용을 해야하니 조건문을 통해 각 기능별로 없는 경우에만 설치할 수 있도록 해주는 것이 좋습니다.
또한 기능을 추가할떈 스크립트 하단에 추가를 한 뒤 다시 업로드를 하여 배포합니다.

3. 플러그인 설치

3-1. Bash Profile 설정

Bash_profile에 PATH=/opt/redmine-4.0.5-6/ruby/bin:PATH:PATH:HOME/bin
를 추가해줍니다.

vi ~/.bash_profile

수정 후 source ~/.bash_profile 명령어를 통해 배쉬프로파일을 다시 불러옵니다.

3-2. 플러그인 설치

Wget을 통해 깃허브에 있는 플러그인을 다운받고 압축을 풀어 플러그인 폴더로 이동합니다.

wget https://raw.githubusercontent.com/kwaneung/vmss-script/master/redmine_agile.zip
unzip redmine_agile.zip
mv redmine_agile /opt/redmine-4.0.5-6/apps/redmine/htdocs/plugins
cd /opt/redmine-4.0.5-6/apps/redmine/htdocs/plugins

필수 구성요소를 다운 받습니다.

yum -y install gcc gcc-c++ httpd-devel
gem install redmine_crm

플러그인을 마이그레이션 해줍니다.
(초기셋팅 이후 플러그인 추가시 폴더추가하고 아래 명령어 두줄만 입력해주시면 추가가 됩니다.)

bundle install --no-deployment
rake redmine:plugins:migrate RAILS_ENV=production

4. DB 설치 및 redmine database 마이그레이션

4-1. 레드마인 서버에서 SQl qordjq

레드마인 서버의 /opt/redmine-4.0.5-6/apps/redmine/htdocs/config 안에 database.yml 파일에서 production 정보 저장합니다.

cd /opt/redmine-4.0.5-6/mysql/bin/ 로 이동하여 db백업합니다.

./mysqldump -u bitnami -p --all-databases > backup.sql

(위에서 저장한 아이디 비밀번호 이용)

backup.sql을 DB서버로 전송합니다.

4-2. DB 서버에서 SQL 복원

db 서버에서 mysql 설치 후 db계정권한 추가 후 bitnami_redmine database 생성
db 백업 파일로 db 복원합니다.

mysql -u root -p bitnami_redmine < backup.sql

3306포트 방화벽과 nsg 추가합니다.

레드마인 서버 database.yml파일의 production 안의 host, username, password 정보 db서버정보로 갱신합니다.

CentOS는 방화벽이 디폴트로 꺼져있어 켜주고 추가해줘야 합니다.

5. 기타 수정

5-1. 이메일 노티

/opt/Bitnami\redmine-3.4.3-1\apps\redmine\htdocs\config\configuration.yml

Production: 다음에 추가

production:
email_delivery:
delivery_method: :smtp
smtp_settings:
enable_starttls_auto: true
address: "smtp.gmail.com" # 회사 smtp주소
port: 587
domain: "smtp.gmail.com" # 회사 도메인
authentication: :plain
user_name: "your_email@gmail.com"
password: "your_password"

5-2. 메인화면 리디렉션

cd /opt/redmine-4.0.5-6/apache2/conf/bitnami
vi bitnami.conf
#Default Virtual Host configuration.

<IfVersion < 2.3 >
  NameVirtualHost *:80
  NameVirtualHost *:443
</IfVersion>

<VirtualHost _default_:80>
  DocumentRoot "/opt/redmine-4.0.5-6/apache2/htdocs"
  <Directory "/opt/redmine-4.0.5-6/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
        Redirect / http://52.231.89.4/redmine  # 이부분 추가

## 5-3.	홈페이지 사진 주의사항

사진을 그냥 업로드하면 인스턴스 각 로컬에 저장되므로 블롭스토리지에 저장하여 링크를 걸어야 모든 인스턴스에 적용이 됩니다.
profile
엔지니어였던 개발자

0개의 댓글