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를 눌러 생성합니다.
Azure portal에서 VM을 생성합니다.
생성 후 nsg에서 3306포트를 허용해줍니다.
아래 스크립트를 복사해 .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)
업데이트 정택에 따라 다르겠지만 스크립트를 작성하고 업데이트를 하게되면 모든 인스턴스에 적용을 해야하니 조건문을 통해 각 기능별로 없는 경우에만 설치할 수 있도록 해주는 것이 좋습니다.
또한 기능을 추가할떈 스크립트 하단에 추가를 한 뒤 다시 업로드를 하여 배포합니다.
Bash_profile에 PATH=/opt/redmine-4.0.5-6/ruby/bin:HOME/bin
를 추가해줍니다.
vi ~/.bash_profile
수정 후 source ~/.bash_profile 명령어를 통해 배쉬프로파일을 다시 불러옵니다.
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
레드마인 서버의 /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서버로 전송합니다.
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는 방화벽이 디폴트로 꺼져있어 켜주고 추가해줘야 합니다.
/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"
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. 홈페이지 사진 주의사항
사진을 그냥 업로드하면 인스턴스 각 로컬에 저장되므로 블롭스토리지에 저장하여 링크를 걸어야 모든 인스턴스에 적용이 됩니다.