using jenkins api

젠킨스 api 사용하기.

jenkins ver 1.658 기준으로 작성.


------------------------------------

1. jenkins 설정의 사용자에 api token을 설정

2. 해당 job에서는 아래와같이 authentication token을 설정


api를 호출할때.

1번의 apitoken을 header에 싣기. c#으로 아래 코드.


            NameValueCollection nv = new NameValueCollection();
            String encodedTkn = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(userName + ":" + userTkn));
            nv.Add("Authorization", "Basic " + encodedTkn);
            Entity.MetaBuild result = JsonConvert.DeserializeObject<Entity.MetaBuild>(Webber.Post(url, "", ContentType.ApplicationJson, EncodingType.Utf8, null, nv).RawResult);


userName, userTken = 1번의 사용자 이름과 토큰

--------------------------------------------------------------------

api 

job list 가져오기 
localhost:8888/api/json
option :  json?tree=jobs[name,color]   (추가 옵션과 pretty는  구글링)

특정 job history 내역. 
localhost:8888/job/"+jobName+"/api/json

위 history 내역에서 수행 num에 따른 상세 정보. 

/job/" + jobName + "/" + bulidNum + "/api/json?tree=number,estimatedDuration,duration,id,buildings,result

(실행중인 job을 호출하면 status값이 success / failure등과 같이 호출때마다 값이 변경됨)

윈도우 호스트 파일 대체 프로그램

윈도우 호스트 파일 대체 proxy

윈도우 호스트 파일을 변경하다보면 세션이 남아있어서, 브라우저때문에 바로바로
적용이 안되는 케이스가 있고, 환경에 따라 목록화해서 관리할 필요성이 있음.
특히, 개발자일 경우 또는 QA를 할때 , host를 수시로 변경해야 한다면  (개발/스테이징/라이브 등등)

호스트 파일로 변경은 여간 번거롭다. 
본 프로그램은
로컬 프록시를 이용해 프로그램내 textbox에 설정한 host만 네트워크 요청시 ip를 override 합니다.
(호스트파일 건드릴 필요X.   해당 로컬 프록시는 fiddler core 사용.) 



hosts.zip설치 파일 :https://github.com/juster111/host-override
(곧 해당 git에 오픈소스로 올릴 예정이며,
현재는 해당 git에서 파일 내려받은후  setup.exe 실행)

 










실행.
1) 아래 인증서 설치에서 "예"를 눌러야 https 까지 정상적으로 capture.
(https 트래픽 캡쳐를 위한 로컬 인증서.) 


2)  


메뉴:
Stop■ / Play 버튼으로 프록시 실행 
capture Disable --> 프록시를 사용하나, 우측 요청 URL에 노출 여부 
SSL Cert --> https 로컬 인증서 설치 

버튼:
호스트적용 – 아래 hosts 내용 변경 후, 즉각 적용이 필요한 경우 버튼 클릭. (클릭시 바로 적용)
저장하기 –
해당 hosts (textbox) 내용을 새로 txt파일로 만들어 저장 목록으로 관리.
실행시 별도 아래 리스트에 추가 되며, 리스트내 txt파일 더블 클릭시 해당 내용을 자동으로 위 hosts (textbox) overwrite. 
해당 리스트 마우스 오른쪽 클릭시 txt 파일 삭제 가능. 



우측폼 요청 url과 요청 상세는 추후 개발. 


3.
해당 트레이아이콘 마우스 우클릭으로 프록시 Play <-> Stop 조정 가능. 

.net 배포시스템, 모니터링 인프라 구축 - (1) 시작전


몇번의 .Net framework 기반 프로젝트 배포 시스템을 구축한 경험을 정리,
공유 하고자 합니다.

정리한 내용들을 바탕으로 .Net 웹 응용프로그램 (asp.net) 이나 어플리케이션들이 .net 자동화 배포 솔루션? 프로젝트로 진행 하고자함


배포 인프라 구축시 사용 환경

 형상관리 - git (bitbucket) , tfs
 개발 - ASP.NET MVC 4.5 (include Webform2.0), Windows Service  (c#)
 컴파일 -msbuild
 CI - jenkins
 파일 전송 - rsync, robocopy
 SMS 발송 - slack


아래는 내부적으로 사용하고 있는 정기점검 프로그램
실행시 jenkins 조회 및 실행, xml파일 생성, 파일 배포등을 수행



왜 jenkins로 실행하지 않고 wrapping한 프로그램을 만들어 사용하는가? 

jenkins 화면을 외부 운영자에게 노출, 공유하기 쉽지 않아서
job 실행, 상태조회만 배포 솔루션으로써 사용할 수 있도록 만든 화면이 필요했음.


앞으로 짬날때 마다 천천히 정리할 예정.