NGROK
/var/lib/jenkins/ → ngrok으로 이관했습니다.
NGROK 설명 그림 1
Deploy Agent 설치해서, AWS Deploy(CI/CD 파이프라인) 작업 진행중
이유는 클라우드 시큐리티 때문입니다
Aws 기준으로 pull
젠킨스 admin계정 리셋 → 젠킨스 이관후 어드민계정 초기화 됬습니다.
젠킨스에서 크론잡 script 뽑아낼때 스크립트
var anchorList = $$('#main-panel > ol > li > a');
var ids = `batch-job1
batch-job2
batch-job3`.split('\\n').filter(el => !el.include('data-platform'))
var templateUrl = `http://192.168.0.183:10010/view/%EC%9A%B4%EC%98%81%ED%86%B5%EA%B3%84/job/`;
var result = [];
await Promise.all(
ids.map(async id => {
try {
var item = { jenkinsJobName: id, cronRule: '' };
var url = templateUrl + id + '/configure';
var resp = await fetch(url);
var html = await resp.text();
var div = document.createElement('div');
div.innerHTML = html;
var arr = [ ...new Set([...Array.from(div.querySelectorAll('textarea')).map(textarea => textarea.value).filter(text =>
text != '' && text != ' ' && !text.include('holyworker')
)]) ]
var selector = '#main-panel > div > div > div > form > table > tbody > tr > td.setting-main > textarea[name="_.spec"]';
var textArea = div.querySelector(selector);
item.cronRule = textArea.value;
item.info = arr.join('\\n')
result.push(item);
} catch (error) {
result.push(error);
}
})
)
console.log(
result.reduce((acc, el) => acc + `${ el.jenkinsJobName }\\t${ el.cronRule.replace(/\\n/g, '') }\\t\\n\\n${ el.info } \\n -----===============\\n`, '젠킨스 작업이름\\t크론룰\\n')
)
var anchorList = $$('#main-panel > ol > li > a');
var ids = Array.from(anchorList).map(anchor => anchor.innerText).filter(item => item != 'deploy-production-new');
var templateUrl = `http://온프레미스내부서버 ip /view/%EC%9A%B4%EC%98%81%ED%86%B5%EA%B3%84/job/`;
var result = [];
await Promise.all(
ids.map(async id => {
try {
var item = { jenkinsJobName: id, cronRule: '' };
var url = templateUrl + id + '/configure';
var resp = await fetch(url);
var html = await resp.text();
var div = document.createElement('div');
div.innerHTML = html;
var selector = '#main-panel > div > div > div > form > table > tbody > tr > td.setting-main > textarea[name="_.spec"]';
var textArea = div.querySelector(selector);
item.cronRule = textArea.value;
result.push(item);
} catch (error) {
result.push(error);
}
})
)
console.log(
result.reduce((acc, el) => acc + `${ el.jenkinsJobName }\\t${ el.cronRule.replace(/\\n/g, '') }\\n`, '젠킨스 작업이름\\t크론룰\\n')
)
Code Deploy 셋팅
sudo apt install ruby
wget <https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2>
.amazonaws.com/latest/install
sudo su - # root login
bash install auto
sudo service codedeploy-agent status
sudo service codedeploy-agent start
Reference
BLUE GREEN DEPLOY MENT
예상 되는 문제점
해결 방법
2021-07-21
for target in $(cat jobs); do NAME=$(grep -rnw batch/src -e $target); echo $NAME | xargs basename; done;