2016-07-29 2 views
1

저는 Rundeck을 매우 신중하게 생각하며 Jenkins의 대안으로 평가하여 임시 작업을 실행합니다.Rundeck - 다른 사용자로 localhost에서 작업 수행

우분투와 같이 특정 사용자로 실행해야하는 모든 명령이 & 개의 Rundeck 서버에 있습니다.

나는 /etc/rundeck/framework.properties ( framework.ssh.user = 우분투) 및 /var/rundeck/projects/myproject/etc/resources.xml 같은 일부 장소에서 구성 변경을 시도 (로컬 호스트 노드의 경우 사용자 이름 = "우분투")하지만 어쨌든 내 작업은 항상 사용자 'rundeck'로 실행됩니다. 처음에는 실망 스럽습니다.

그래서 내가 뭔가를 놓치고 있거나 Rundeck이 'rundeck'과 다른 사용자로 스크립트를 로컬로 실행할 수 없습니까?

UPDATE : 내가 지금은 하나 개의 솔루션을 발견, 그 호출 문자열 내가 그에게 "sudo를 -u 우분투"처럼 설정할 수있는 사전 옵션에 다음 스크립트 단계를 사용하여 나의 스크립트 rundeck에서 우분투로 실행합니다.

그러나 sudo를 사용하는 것은 여전히 ​​편리하지 않습니다. 예를 들어 환경 변수는 문제를 보존합니다.

+0

스크립트를 원하는 사용자와 함께 실행시킬 수 있습니까? – Fabio

+0

@Fabio 실제로 우리는 우리가 사용하고있는 다른 도구 및 프레임 워크와의 호환성을 위해 '우분투'로 실행해야합니다. 우리는 다른 도구를 호출 할 수있는 많은 스크립트 또는 명령을 가지고 있습니다. 즉 우분투 자체를 지금 당장 우리에게 옵션이 아닌 다른 것으로 전환해야한다는 것입니다. – Arcobaleno

+0

다른 스크립트를 우분투로 실행하는 단일 스크립트를 갖는 것은 어떻습니까? 원본 스크립트를 첫 번째 인수로 전달하고 다른 인수는 다음 인수로 전달할 수 있습니다. 더 현실적인가요? – Fabio

답변

0

@Arcobaleno ssh 설정을 사용하려면 rundeck 서버에 디스패치해야합니다. 디스패치되지 않은 "로컬 명령"또는 명령 단계는 플러그인 포인트 인 로컬 노드 실행 프로그램을 사용합니다. 로컬 노드 실행 프로그램을 작성하여 원하는 사용자에게 암 호적으로 sudo하고 명령을 실행할 수 있습니다.

+0

당신이 좀 더 구체적으로 말해 줄 수있는 것은 매우 새롭기 때문에 Command, Script, Local Command로 시도한 후 Commands 탭의 대상 노드 (localhost)에서 명령을 실행 해보십시오. 아무도 내 SSH 구성을 사용하지 않는 것 같습니다. 당신이 언급 한 로컬 노드 집행자가 있습니까? 로컬 노드 실행 프로그램을 어떻게 만들 수 있습니까? – Arcobaleno

0

localhost에서 로컬 호스트로 ssh (원격 호스트로 가정)를해야합니다.

~/.ssh/authorized_keys

[ubuntu]$ ssh [email protected] with passwordless ssh. 

복사 id_rsa.pub. (id_ras.pub은 기본 장소 /var/lib/rundeck/.ssh/id_rsa.pub.에 저장 됨).

그러면 우분투 환경을 사용하여 프로그램을 실행할 수 있습니다.

나를 위해 작동합니다.

관련 문제