Pipeline :
Spinnaker에서 배포를 위한 주요 구조.
Stage로 부르는 sequence of action으로 이루어짐.
Pipeline 내 Stage 사이에 파라미터 전송 가능.
수동으로 pipeline을 시작하거나, Jenkins Job Completing, new Docker image appearing in registry, CRON Schedule, another pipeline stage 등의 이벤트로 인한 자동 pipeline 시작 가능.
Status에 따라 (start/complete/fail) 정해진 대상자들에게 Notification을 발송하도록 (email, SMS, HitChat) pipeline 설정 가능.
Template에서 생성되었는지의 여부와 관계없이, Deck UI에서 시각화할수 있는 실행가능한 pipeline.
Orca에 의해 실행될 수 있다.
Pipeline Template :
Pipeline instance에서 발견되는 pipeline configuration을 제외한 매개변수화된 pipeline.
이 템플릿은 개발자가 여러분이 설정한 패턴을 따르는 pipeline을 생성하도록 도움을 준다.
Pipeline configuration :
Template에서 생성되지 않은 pipeline 설정과 변수 바인딩, 템플릿 참조가 합해진 것과 같다.
Stage :
Spinnaker의 Pipeline에 대한 Automic Building Block(가장 작은 빌딩 블록).
Pipeline이 실행하고 있는 action을 설명함.
Pipeline에 임의의 순서로 stage를 구성할 수 있고, Deploy, Resize, Disable, Manual Judgement(ex. manual approval)등 다양한 Stage를 지원함.
Application :
여러 개의 Cluster로 이루어짐 (Collection of clusters) + Load Balancer + Firewall.
Spinnaker를 사용하여 배포하고자 하는 서비스, 서비스의 모든 설정, 서비스가 실행되는 인프라를 나타냄.
서비스별 다른 Application을 만들지만 Spinnaker는 시행하지 않는다.
Cluster :  
여러 개의 Server Group으로 구성됨 (Collections of Server Groups).
여러 개의 Server Group을 묶는 논리적인 단위. Kubernetes의 Cluster와는 다름.
단순히 Spinnaker의 Server Group의 집합.
Server Group :
배포가능한 아티팩트(VM Image, Docker Image, Source location)와 인스턴스 수, autoscaling 정책, 메타데이터 등과 같은 기본 설정을 명시한 기본적인 Resource.
(Optionally) Load Balancer와 Firewall과 관련되어 있다.
배포될 때, Server Group은 VM Instance와 Kubernetes Pod와 같이 동작하고 있는 소프트웨어 Instance의 Collection이다.
Load Balancer :
ingress protocol과 port range와 관련 있음.
Server Group에 있는 Instances 사이에서 Traffic에 대하여 Balancing한다.
Firewall :
Network Traffic Access를 정의한다.

CentOS 7에서 방화벽 오픈 여부 확인 방법

2019/07/18 13:48
Telnet Client가 설치되어 있지 않은 경우, 먼저 telnet 설치
yum -y install telnet
방화벽이 열려 있지 않은 경우
telnet ip_address port_number
---> Connection timed out
방화벽은 열려 있으나, 해당 포트 서비스가 안 떠 있는 경우
telnet ip_address port_number
---> Connection refused
방화벽도 열려 있고, 서비스도 떠 있는 경우
telnet ip_address port_number
---> Connected to ip_address
---> Escape character is '^]'.

CentOS 7.4에서 Jenkins 설치하기

2019/07/11 14:46
1. JDK && Git Client 설치
yum install java-1.8*
java -version
yum install git
git --version
2. 방화벽 설정
yum list installed | grep firewalld
설치되어 있지 않을 경우,
yum install -y firewalld

<서비스 등록>
systemctl unmask firewalld
systemctl enable firewalld
systemctl start firewalld

<방화벽 등록>
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --reload
3. Maven / Gradle 설치
mkdir /tools
cd /tools

<Maven Download>
wget http://mirror.navercorp.com/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
tar xzvf apache-maven-3.6.1-bin.tar.gz
ln -s apache-maven-3.6.1 maven

<Maven ENV Setting>
vi /etc/profile.d/maven.sh

export MAVEN_HOME=/tools/maven
export PATH=${MAVEN_HOME}/bin:${PATH}

source /etc/profile.d/maven.sh
mvn -version

<Gradle Download>
wget --no-check-certificate https://services.gradle.org/distributions/gradle-5.4.1-bin.zip
unzip gradle-5.4.1-bin.zip
ln -s gradle-5.4.1 gradle

<Gradle ENV Setting>
vi /etc/profile.d/gradle.sh

export GRADLE_HOME=/tools/gradle
export PATH=${GRADLE_HOME}/bin:${PATH}

source /etc/profile.d/gradle.sh
gradle -v
4. Jenkins 설치
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
yum install -y jenkins

<Jenkins Default Port Setting>
vi /etc/sysconfig/jenkins
JENKINS_PORT="8080"

<Jenkins Operation>
Start : service jenkins start
Stop : service jenkins stop
Restart : service jenkins restart
5. Jenkins 실행
Web Browser에서 http://localhost:8080 접속

<Initial Admin Password>
view /var/lib/jenkins/secrets/initialAdminPassword

<Error Case>
Admin 로그인 후, This Jenkins instance appears to be offline 일 경우,

vi /var/lib/jenkins/hudson.model.UpdateCenter.xml
<url>https://updates.jenkins.io/update-center.json</url> 에서 https -> http로 변경

<Jenkins Restart>
service jenkins restart


CentOS 7에서 계정에 Root 권한 부여하기

2019/07/08 19:56
계정 추가 : adduser
계정 수정 : usermod
계정 삭제 : userdel
1. sudo 권한 부여
vi /etc/sudoers
root    ALL=(ALL)    ALL 아래에 다음 내용 추가
계정명    ALL=(ALL)    ALL
2. root 그룹 부여
vi /etc/group
root:x:0: ----> root:x:0:계정명
3. uid, gid 값을 root 값으로 변경
vi /etc/passwd
계정명:x:uid:gid::/home/계정명:/bin/bash --------> 계정명:x:0:0::/home/계정명:/bin/bash
4. SSH Config 수정
vi /etc/ssh/sshd_config
PermitRootLogin = prohibit-password | without-password | no 일 경우,
PermitRootLogin yes 로 변경
5. Service 재 시작
service sshd restart