2016-09-08 4 views
6

, 서비스 모듈 : 원격 호스트에"service"모듈을 사용할 때 어떤 init 시스템이 실행되는지 어떻게 알 수 있습니까? <a href="http://docs.ansible.com/ansible/service_module.html" rel="noreferrer">the Ansible documentation</a>에서

제어 서비스를 제공합니다. 지원되는 init 시스템에는 BSD init, OpenRC, SysV, Solaris SMF, systemd, upstart가 있습니다.

주어진 시스템의 경우 어떤 초기화 시스템을 사용할 수 있는지 어떻게 알 수 있습니까? 예를 들어 시스템에 init과 systemd가있을 수 있습니다.

답변

3

의은으로 살펴 보자 모듈 'code :

def main(): 내부 :

# Find service management tools 
service.get_service_tools() 
class LinuxService(Service):에 그런

def get_service_tools(self): 나는 몇 가지 코드를 절단 한

# Locate a tool to enable/disable a service 
    if check_systemd(): 
     # service is managed by systemd 
     ... 
    elif location.get('initctl', False) and os.path.exists("/etc/init/%s.conf" % self.name): 
     # service is managed by upstart 
     ... 
    elif location.get('rc-service', False): 
     # service is managed by OpenRC 
     ... 
    elif self.svc_initscript: 
     # service is managed by with SysV init scripts 
     ... 

에 있지만,이 조각은해야 당신의 질문에 답하십시오 : 많은 시스템이 있다면 어떤 시스템을 선택할 것인가?

Systemd는 검색 한 다음 새로 시작하는 등 ...

+0

나는 그것이 좋은 생각이 아니라고 생각한다. 내 우분투 14 서버에서 나는 systemd를 설치했으나 초기화에는 사용하지 않았다. 그 결과, Ansible은 Upstart (시스템 관리자가 선언 한 서비스 관리자) 대신 Systemd를 사용하려고 시도합니다. –

8

호스트의 init 시스템은 Anonymous 사실 ansible_service_mgr으로 사용할 수 있습니다.

+0

이것은 호환되는 버전간에 일치하지 않습니다. 나는 Ubuntu 신뢰할 수있는 시스템을 가지고 있는데, Ansible 2.2.1이 "신생"이라고보고하고 Ansible 2.4가 "서비스"를보고합니다. – bschlueter