Open Liberty의 Ansible + Jenkins를 통한 자동 구축 및 구성 관리
소개
Ansible이나 Jenkins를 사용한 DevOps의 프로세스를 학습하게 되었기 때문에, Open Liberty를 도입·구성 관리하는 유스 케이스로 실제로 움직여 보았을 때의 메모입니다.
완전 초학자의 메모이므로, 잘못하고 있는 개소·이런 쪽이 좋은 개소등 있다고 생각하므로, 신경이 쓰이는 곳이 있으면 댓글 주실 수 있으면 다행입니다.
전제 조건
호스트:
손님:
절차
호스트 측 준비
AddCentOS7.1box
vagrant box add centos71 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.1/vagrant-centos-7.1.box
2. vagrant init에서 VM 설정
vagrant init centos71
Vagrant.configure(2) do |config|
config.vm.define "controller" do |node|
node.vm.box = "centos71"
node.vm.hostname = "controller"
node.vm.network :private_network, ip: "192.168.100.10"
node.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2210
node.vm.network :forwarded_port, id: "jenkins", guest:8080, host: 18080
end
config.vm.define "target" do |node|
node.vm.box = "centos71"
node.vm.hostname = "target"
node.vm.network :private_network, ip: "192.168.100.20"
node.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2220
end
end
3. vagrant up으로 VM이 2개 올라오는 것을 확인
vagrant up
vagrant status
Current machine states:
controller running (virtualbox)
target running (virtualbox)
4. 2개의 VM로 통신할 수 있도록 키 만들어 교환
ssh root@localhost -p 2210
ssh-keygen -t rsa
ssh-copy-id [email protected]
5. Open Liberty와 OpenJ9를 입수
게스트(컨트롤러)측 준비
1. Ansible 도입은 다른 기사를 참고로
python --version
Python 2.7.5
sudo yum install ansible
ansible --version
ansible 2.6.2
2. Jenkins 도입은 다른 기사를 참고로
sudo yum install java-1.8.0-openjdk wget
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install -y jenkins
service jenkins start
chkconfig jenkins on
sudo /usr/sbin/visudo
#Defaults requiretty
Defaults:jenkins !requiretty
jenkins ALL=(ALL) NOPASSWD:ALL
게스트(대상) 측 준비
sudo yum install unzip
컨트롤러의 Ansible에서 Open Liberty + OpenJ9 도입
mkdir ansible
cp openliberty-18.0.0.2.zip /ansible/
cp OpenJDK8-OPENJ9_x64_Linux_jdk8u162-b12_openj9-0.8.0.tar.gz /ansible/
2. roles 작성
mkdir roles
cd roles
mkdir common
mkdir OpenJ9
mkdir OpenLiberty
roles/common/tasks/main.yml
---
- name: create group oladmin
group:
name: oladmin
- name: create user oladmin
user:
name: oladmin
group: oladmin
- name: create directories
file:
group: oladmin
owner: oladmin
mode: 0770
path: "{{ item }}"
state: directory
with_items:
- "/opt/IBM/OpenJ9"
- "/opt/IBM/OpenLiberty"
roles/OpenJ9/tasks/main.yml
---
- name: unarchive OpenJ9
unarchive:
copy: yes
src: /ansible/OpenJDK8-OPENJ9_x64_Linux_jdk8u162-b12_openj9-0.8.0.tar.gz
dest: /opt/IBM/OpenJ9
owner: oladmin
group: oladmin
keep_newer: no
list_files: no
mode: 0770
roles/OpenLiberty/tasks/main.yml
---
- name: unarchive Open Liberty
unarchive:
copy: yes
src: /ansible/openliberty-18.0.0.2.zip
dest: /opt/IBM/OpenLiberty/
owner: oladmin
group: oladmin
keep_newer: no
list_files: no
mode: 0770
3. inventory/hosts 작성
[targets]
192.168.100.20
4. install.yml 작성
install.yml
---
- name: install liberty
become: true
hosts: targets
roles:
- common
- OpenJ9
- OpenLiberty
tasks:
5. Playbook 전체 디렉토리 구성은 이하:
ansible
L install.yml
L roles
L common
L task
L main.yml
L OpenJ9
L task
L main.yml
L OpenLiberty
L task
L main.yml
L inventory
L hosts
6. Jenkins에서 작업 작성 (Ansible 명령 실행)
7. Jenkins에서 작업 실행하여 성공하는 것을 확인 (이하는 처음 실행하고 도입 후에 재실행하고 있으므로 균등성이 유지되고 ok가 나와 있다)
Open Liberty + OpenJ9 소개 @ 타겟
요약
최소한의 Ansible Playbook과 Jenkins의 작업을 사용하여 OpenJ9와 OpenLiberty를 도입했습니다.
server.env 파일에 Java 경로를 설정하여 서버(JVM) 작성 및 시작 task를 다음에 추가하고 싶습니다.
또 Ansible의 디렉토리 설계나 Jenkins의 작업 구성에 대해서도 최저한이므로 향후 개선을 해 나가고 싶습니다.
Reference
이 문제에 관하여(Open Liberty의 Ansible + Jenkins를 통한 자동 구축 및 구성 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rinaxsumomo/items/d222a941cd1a39a115c8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)