아마 비정기연재 시리즈(?)로는 이게 마지막이 될거같네욤... ㅎㅎㅎ
asic 의 경우는 어쩔 수 없이 안쪽에 작은 PC 를 하나 넣어서 asic 장비에 대한 관리를 하게 설계했습니다만.. 그럼에도 남은 과제게 하나 있었습니다. 바로 windows/linux agent installer 였죠. installer 를 만드는데에 대한 기준은 다음과 같았습니다.
1. 설치할때 client 머신 id 를 넣을 수 있어야함
2. installer 는 고객별로 별도로 생성할 수 있어야함
3. windows 의 경우는 관리자권한을 소환할 수 있어야함
4. windows 의 경우는 스케줄러를 핸들링 할 수 있어야함
5. windows 의 경우는 64bit 머신이 아니면 설치를 막을 수 있어야함
6. linux 의 경우는 OS 를 검출해낼 수 있어야함
7. linux 의 경우는 installer 에 필요한 rpm 또는 deb 패키지를 같이 묶을 수 있어야함
8. linux 의 경우는 콘솔에서 설치할 수 있어야함
이상의 전제로 windows 의 경우는 nsis installer 를 골랐고, linux 는 Bash Self-Extracting Script 와 dialog 를 사용하게 되었습니다. linux 야 bash 스크립트를 짜는건 그리 어렵지 않았습니다만... windows installer 를 작업할때는 좀 GR 맞았죠. 여러가지 스크립트를 뜯었는데 결과적으로는 뭐.. 대충 작업했습니다. nsis 를 작업할때의 주의사항은 이정도였던듯 하네요.
1. 실행되고 있는 agent 의 process 를 죽여야 한다. 안그러면 installer 시에 file 에 lock 이 걸려서 설치가 진행안될 수도 있음
2. 그럼 winodws 에서 자동실행은 어떻게?
3. windows 에서 자동실행될때 관리자권한은 어떻게?(UAC 문제)
여튼 이런걸 해결하고 나니.. .남은건 바로 사용자 가입시 동적 installer 생성이었습니다. php 에서 exec 함수를 여는건 보안에 구멍을 만들 소지가 높았기 때문에 php 에서 JSON 으로 받아서 서버상의 installer 생성을 진행하는 별도의 서비스를 내부에서 구현했구요... nsis 의 경우는 원래 windows 프로그램이었기 때문에 plungin 등을 생각하면 windows 환경이 필요했는데.. 이건 linux 의 wine 으로 해결을 했습니다. (이게 아니었다면 별도로 windows PC 를 하나 두고 installre 생성이 끝나면 network drive 로 보내는 삽질을 했어야 겠죰 ㅋㅋㅋ)
여튼간에 이런것들을 모아모아서 지금의 모니터링 시스템을 만들게 되었습니다. 일단 core 부분은 동작을 잘 하고있어서 다행인듯 하구요... ㅎㅎㅎ
요 몇주는 다음을 개선하는데 힘쓰고 있습니다.
1. miner 또는 asic 에서 저희 모니터링 시스템에 등록된 정보와 실제 동작하는 option(worker 또는 pool) 이 다를때 이에 대한 알림 및 복구기능
2. master 회원이 하부회원을 지정해서 그룹을 할당하게 하는 상위-하위 사용자 관리기능
이게 작업되면 아마 게시판에 한번 더 테스트를 부탁드리게 될거같네욤.
지금까지 보잘것 없는 글이었습니다만... 관심을 가져주시고 추천 날려주신 모든분께 감사드립니다. 마이닝에 대해서는 그렇게 잘 아는편이 아니지만.. 기업비밀(?) 수준이 아니라면.. 혹시라도 질문을 남겨주셨을때... 성심과 성의를 다해 저도 뭔가를 도울 수 있도록 노력하겠습니다... 감사합니다 :D
ps. 글을 그만쓴다는건 당연히 아니구욤.. 이후에 mobile 개발이 어느정도 진행되면, 추후 시리즈를 적어보도록 하겠습니당 :D
-------------------------------------
꼬리말
* 게시글 내용 삭제시 레벨 강등
* 질문은 각 주제별 게시판에.
비트코인 암호화화폐 커뮤니티 땡글~ 땡글~
-------------------------------------