More Related Content
Similar to Jenkins study jenkins build-cicdi
Similar to Jenkins study jenkins build-cicdi (20)
Jenkins study jenkins build-cicdi
- 5. • Programmerable Data Center
AWS、Azure、Google
→データセンターの様々なリソースをAPIで制御
• Infrastructuer as Code
Chef、Ansible、Terraform
→インフラのプロビジョニング及びコンフィグレーションをコード化
• Application Container
Docker
→Docker::アプリケーションコンテナー、 VM::サーバコンテーナ
→インフラコード化の守備範囲の一つ
• CIツール(Continuous Intergration Tool)
Jenkins、他に類似のもの何十種
→巨大な流れの受け皿
注目の流れ―
インフラがソフトウェアに
4
- 21. クリエーションライン株式会社 20
ジョブ実行
Gitリレポジトリをダウンロード
Jenkinsfile実行
├─jenkins
│ └─ packer-build
│ └─Jenkinsfile
│ └─run.sh
└─packer
├─ansible
│ └─roles
│ ├─base
│ │ ├─files
│ │ └─tasks
│ │ └─main.yaml
│ └─gdb
│ ├─files
│ └─tasks
│ └─base.yaml
├─scripts
└─serverspec
│ ├─spec
│ │ ├─base
│ │ └─gdb
│ └─yaml
└─clee-gdb.json
└─variables.json
#slackに終了メッセージを送る
複雑に見えるがすべてJenkinsfile
(Groovy)にすべて収束されるシンプルな
構造。
Shellスクリプトを埋め込んだりするが、基
本的にDSL言語であるからある種の雛形
を理解れば、お手の物。
- 25. • すべてがソフトウェアになった
• 開発と運用が共同作業体制で導入に臨む
• 繰り返して価値を産まないものは優先順位を下げる
• 対象によっては、冪等性を捨てる(要らない)
• 個別リソースはパズルのように単独で置き換え可能にする(できないものあ
る)
• インフラもトライ&エラーで繰り返してデプロイしながら最適化していく
• サーバレスやSaaSを思い切り取り入れる
必勝CI論
ネイティブクラウド
24
今回は、主にインフラのコード化に焦点を当てている。
- 37. • 実行結果を#slackに通知する準備をする。
• 会社のSLACKから通知用の「YOUR CHANNEL」作成
• 左上段のyour nameクリック→
• Apps&Intergrationsクリック
• jenkins CI選択→
• Add configurationクリック
• Post to channelで「YOUR CHANNEL」検索
• Add jenkins CI Integrationクリック
• [Customize Name]を入力/[Token]を控える/Save Settingクリック
5.Slack通知準備
36
- 38. CentOS7.0にJenkinsをインストールする
http://qiita.com/inakadegaebal/items/b526ffbdbe7ff2b443f1
yum install java-1.8.0-openjdk
yum install git -y
yum install ansible -y
yum install unzip -y
yum install -y gcc libffi-devel python-devel openssl-devel httpd
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins -y
cat<<EOF>/etc/httpd/conf.d/jenkins.conf
ProxyPass /jenkins ajp://localhost:8080/jenkins nocanon
ProxyPassReverse /jenkins ajp://localhost:8080/jenkins
ProxyRequests Off
AllowEncodedSlashes On
<Proxy "ajp://localhost:8080/jenkins">
Order deny,allow
Allow from all
</Proxy>
EOF
service jenkins restart
chkconfig jenkins on
systemctl resart httpd
systemctl enable httpd
mkdir /var/lib/jenkins/.ssh
chown jenkins. /var/lib/jenkins/.ssh
chmod 700 /var/lib/jenkins/.ssh
chown jenkins. /var/lib/jenkins/.ssh/clee-jenkins-build.pem
chmod 600 /var/lib/jenkins/.ssh/clee-jenkins-build.pem
6.Jenkinsインストール&初期環境設定
#install on CentOS7
37
- 39. apt-get install -y apache2 openjdk-8-jdk
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | apt-key add -
echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
apt-get update -y
apt-get install -y jenkins
echo JENKINS_ARGS=¥"¥$JENKINS_ARGS --prefix=¥$PREFIX¥" >> /etc/default/jenkins
service jenkins restart
cat << EOF > /etc/apache2/mods-enabled/jenkins.conf
ProxyPass /jenkins http://localhost:8080/jenkins
ProxyPassReverse /jenkins http://localhost:8080/jenkins
ProxyRequests Off
AllowEncodedSlashes NoDecode
<Proxy http://localhost:8080/jenkins>
Order deny,allow
Allow from all
</Proxy>
EOF
a2enmod proxy
a2enmod proxy_http
service apache2 restart
mkdir /var/lib/jenkins/.ssh
chown jenkins. /var/lib/jenkins/.ssh
chmod 700 /var/lib/jenkins/.ssh
chown jenkins. /var/lib/jenkins/.ssh/clee-jenkins-build.pem
chmod 600 /var/lib/jenkins/.ssh/clee-jenkins-build.pem
#install on ubuntu16.04
38
- 41. • Azure Account取得
• テナントID控える
✓ サブスクリプション情報から控える
AZURE_TENANT=dd65daff-xxxx-xxxx-xxxx-7bf26eacdc04
• 認証情報取得
✓ Master Accountからアプリケーション登録し、キー生成して控える
AZURE_CLIENT_ID=7f5ca544-xxxx-xxxx-xxxx-8e6264fc65ce
AZURE_SECRET=HQ7S+5vIF4XXXXXXXXXXgtLKcSAx1dRWMRSADkPC
✓ サブスクリプションに登録要
• Azure環境を作成する
✓ リソースグループ
✓ ストレージ
✓ ネットワーク(VENT/SUBNET)
✓ セキュリティグループ(SUBNETと関連付け)
7.Azure Account&初期環境
40