Rultor는 DevOps 팀 보조원입니다. 프로그래머와 릴리스 관리자가 사용하기 쉬운 직관적인 채팅 봇 인터페이스를 통해 일상적인 작업(병합, 배포 및 릴리스)을 자동화하는 데 도움이 됩니다. GitHub 문제에서 @rultor hello
라고 말하면 대화가 시작됩니다.
전체 문서는 doc.rultor.com에 있습니다.
.rultor.yml 파일의 스키마
온라인으로 도움이 필요하신가요? 텔레그램 그룹을 사용해 보세요.
다음 블로그 게시물이 도움이 될 수 있습니다.
병합 봇인 Ruler
자체 Docker 컨테이너의 모든 빌드
마스터 분기는 읽기 전용이어야 합니다.
룰터 + 트래비스
Rultor의 용도를 이해하려면 다음 동영상을 시청하세요.
배포 스크립트가 종료되었습니다. 룰터를 만나보세요
데브옵스 프로; 리투아니아 빌뉴스; 2016년 5월 26일
원클릭 릴리스의 실제 예
데브옵스프로 2016; 모스크바, 러시아; 2016년 11월 15일
채팅 봇 아키텍처
긱아웃 2016; 탈린, 에스토니아; 2016년 6월 9일
기본 Docker 이미지는 yegor256/rultor-image입니다.
자동화된 배포 스크립트는 한동안 사용되어 왔습니다. Rultor는 해당 스크립트가 해결하지 못하는 문제를 해결하려고 시도합니다.
Rultor의 첫 번째 이점은 Docker 컨테이너를 사용하여 자체 가상 환경에서 배포 스크립트를 격리할 수 있다는 것입니다. 이렇게 하면 빌드에 영향을 줄 수 있는 외부 상태의 양이 크게 줄어들고 오류를 더 쉽게 재현할 수 있습니다.
또한 Rultor가 최신 이슈 추적기와 통합되는 방식으로 인해 모든 로그가 Rultor가 언급된 티켓에 저장되고 게시됩니다. 모든 개발자가 중요한 정보에 쉽게 액세스할 수 있도록 합니다.
Rultor는 비행 전 빌드를 수행합니다. 마스터로 병합한 다음 변경 사항으로 인해 빌드가 중단되었는지 확인하는 대신 Rultor는 마스터 브랜치를 확인하고 변경 사항을 적용한 다음 실행하도록 설정된 모든 것을 실행합니다. 모든 것이 잘 진행되는 경우에만 Rultor는 변경 사항을 마스터에 병합합니다. 이는 개발자가 마스터를 손상시키는 것을 프로그래밍 방식으로 방지합니다. 다른 사람을 위해 빌드가 손상되는 것을 걱정할 필요가 없으면 개발자가 코드를 작성하는 방식에 매우 긍정적인 영향을 미치고 생산성을 높이며 실수에 대한 두려움을 완화할 수 있습니다.
마지막으로 Rultor는 DevOps 도구에 통합되고 인간화된 인터페이스를 제공합니다. 사람이 읽을 수 있는 문장이면 병합이나 릴리스를 트리거하기에 충분하기 때문입니다.
Rultor는 GitHub 풀 요청 중 하나에서 병합 명령을 찾으면 정확히 다음을 수행합니다.
bundle test
.master
브랜치에 병합합니다.bundle test
을 실행합니다.master
브랜치를 GitHub에 푸시합니다.예를 들어 이 풀 요청 jcabi/jcabi-github#878에서 실제로 작동하는 모습을 볼 수 있습니다.
Rultor는 Docker가 설치된 서버를 사용할 수 있을 것으로 기대합니다. SSH를 통해 로그인하고 각 작업마다 Docker 컨테이너를 시작합니다. 다음은 처음부터 서버를 구성하는 방법입니다(Ubuntu 20.04에서 root
로).
$ apt-get install -y bc
$ groupadd docker
$ adduser rultor
$ gpasswd -a rultor docker
$ echo 'rultor ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
$ mkdir /home/rultor/.ssh
$ cat > /home/rultor/.ssh/authorized_keys
$ chown rultor:rultor -R /home/rultor/.ssh
$ chmod 600 /home/rultor/.ssh/authorized_keys
b4.rultor.com
이 서버를 가리키는지 확인하세요. 현재 호스팅된 앱은 이 특정 도메인 이름을 사용하여 단일 서버에서만 작동하고 있습니다.