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 실행, 상태조회만 배포 솔루션으로써 사용할 수 있도록 만든 화면이 필요했음.


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

크롬앱 - Readability [html 읽기모드]




아이폰 사파리에서 읽기 모드를 하면 웹페이지가 본문만 읽기 편하게 렌더링 되는것이 편해 PC용으로 비슷한 기능을 사용할 수 있도록 만든 플러그인입니다.
웹페이지에서 본문 필터링 렌더링의 엔진은
arc90 오픈소스를 활용 하였습니다.


아래 링크를 통해 설치할 수 있습니다.

https://chrome.google.com/webstore/detail/readability/gecalmamhkdlancogmdcimbkonhjoini?utm_source=plus

ver0.1 초안
ver0.2 렌더링시 본문 이미지 정렬, 본문 영역 800px -> fullsize로 변경








윈도우 호스트 파일 관리자

윈도우 호스트 파일 관리자
웹개발을 하다보면 host를 지정하고 로컬 PC에서 테스트를 해야한다. (dev/ stg/ live등등등)
보통 윈도우 호스트 파일을 변경해서 사용하나,
본인은 fiddler의 Host Remapping 기능을 선호한다. 자체 proxy port를 열어 바로바로 적용이 되기 때문.
하지만 fiddler의 웹 캡쳐기능이 사내 보안프로그램과 충돌, 강제종료 되는 경우가 요즘들어 부쩍 많아졌다.

하는수 없이 호스트 파일을 fiddler와 같이 바로 변경/적용할 수 있는 간단한 프로그램을 개발했는데 사용 방법은 아래와 같다.

사용 방법: 실행하면 윈도우 아이콘으로 활성됨.
해당 아이콘 클릭-> 관리창 열기 -> 필요 ip -host 입력후 적용 -> 다시 아이콘 클릭-> 동작->  적용 || 초기화 || 자동 초기화 & 적용

적용: 관리창의 호스트로 적용됨을 의미
초기화: 적용하지 않음을 의미. (호스트파일이 원복 된다.)

해당 기능이 정상 작동 되려면 호스트 파일 수정 권한이 있어야한다.
보통 윈도우 호스트파일은 수정 금지로 설정된 경우가 있는데, 수정 허용하면 된다

언제든 기능 개선, 추가, 지적, 아이디어, 직접 수정후 공유 모두 환영합니다.

%ec%ba%a1%ec%b2%98


github : 소스코드는 아래에 있습니다.
https://github.com/juster111/hostsmanager
실행파일 :아래 경로에서 download 클릭.  https://github.com/juster111/hostsmanager/blob/master/hostsmanager/bin/Release/hostsmanager.exe

ver 1.1  업데이트———-
프로그램 시작시 default 추가 (호스트 입력후 저장, 프로그램 종료하면 재시작시 그대로 설정되어있도록 수정 :: hostmanager.txt 파일로 관리)
txt 불러오기기능 추가
아이콘 변경

[DATAZEN] ms 통계툴 설치 가이드



[설치]
http://www.datazen.com/start/

설치는 아래 두가지를 해야함.
1. Datazen Enterprise Server
2. Datazen Publisher Apps -> Dashboard를 생성하거나, 엑셀/DB등 데이터 바인딩하는 앱


[서버 구성요소]
Core Service

  • 저장소를 포함한 윈도우서비스  
  • users, KPIs, dashboards, data view등의 저장소
  • 방대한 데이터에 빠르게 액세스 할수 있도록 디자인 

Data Acquisition Service

  • 주기적으로 질의된 외부 데이터소스 와 캐시데이터를 가지고 있는 Core Service내 윈도우 서비스 

Web Applications

  • Web API 
  • Control Panel - 관리자
  • Viewer 

[authentication mode]

  • default - core service 저장소내 저장
  • AD - core service내 username 저장 pw는 ad환경
  • ADFS - core service 내 username 저장, 자격증명은 설치된 ADFS에 의해 증명함.
  • external - HTTP header나 쿠키등을 활용해 외부와 인증

Datazen 서버 설치시 두가지 키를 제공
Repository Encryption key -> Core Repository를 복구할때 사용
Instance Id -> 분산컴포넌트를 사용할때 사용


설치가 끝나면,
(최초 설정하는 비밀번호가 datazen 관리자 페이지 비밀번호이므로 잘 기억해야함)
Core Service 계정 초기화
netsh http delete urlacl url=http://+:28952/
netsh http delete urlacl url=http://+:28953/
netsh http delete urlacl url=https://+:28953/
netsh http add urlacl url=http://+:28952/ user=[new service account username]
netsh http add urlacl url=https://+:28953/ user=[new service account username]


81번 port로 자동 IIS 세팅.아래 경로로 접근 가능

[경로]
관리 로그인 페이지: http://localhost:81/cp/Account/Login?ReturnUrl=%2fcp
통계 뷰페이지: http://localhost:81/viewer/home#/dashboards/0


[built-in data providers]
-sql server  -  data view query 에서 바로 가능
-sql server  - analysis services    mdx 쿼리
-sharepoint   -  list name
-odata webservice
-xml webservice
-mysql  - odbc driver 설치해야함
-oracle 도 마찬가지
-postgresql db 가능
-엑셀 가능





[메뉴명]

BI hubs ->
users, dashboards, KPIs, data등의 관리하는 최상위 계층.
하나의 Datazen Server에서 여러개의 BI hubs를 동시에 각기 다른 roles과 view로 제공 가능하다.

KPI -> 목표 단위 설정합니다.  각 value는 쿼리, 직접입력이 가능.


Datasources -> Data Connection Pool (Store)
1) DataSource를 생성  (instance)


2) Dataview를 생성  
  (refresh frequency를 설정할수 있음, 파라미터 받아서 처리도 가능 )



Dashboards
1) Datazen Publisher를 통해 페이지 레이아웃을 잡는다.
  (PC/모바일/태블릿에 따라 레이아웃을 다르게 설정한다)


2) Dashboards -> DataView
선택한 콘트롤을 선택하고 바인딩하려는 데이터를 Add Data 버튼을 눌러 바인딩한다.

3) Datasources 에서 만들어놓은 pool과 매핑 또는 엑셀로 매핑






Publish



결과화면