2017-06-23 34 views

答えて

1

はい、ESXiホストでSSHを有効にする方法があります。 Ansibleのvmware_host_service_managerモジュールをPyvmomiのAPI

from pyVim.connect import SmartConnect, Disconnect 
import ssl 
import atexit 
from pyVmomi import vim 


def connect(): 
    context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) 
    context.verify_mode = ssl.CERT_NONE 

    si = SmartConnect(host='0.0.0.0', user='user', pwd='pass', port=443, sslContext=context) 
    atexit.register(Disconnect, si) 
    content = si.RetrieveContent() 
    return content 

def get_obj(content, vimtype, name): 
    """ 
    Return an object by name, if name is None the 
    first found object is returned 
    """ 
    obj = None 
    container = content.viewManager.CreateContainerView(
     content.rootFolder, vimtype, True) 
    for c in container.view: 
     if name: 
      if c.name == name: 
       obj = c 
       break 
     else: 
      obj = c 
      break 

    container.Destroy() 
    return obj 

content = connect() 

host_system = get_obj(content, [vim.HostSystem], 'NAME_OF_HOSTSYSTEM') 
service_system = host_system.configManager.serviceSystem 
ssh_service = [x for x in service_system.serviceInfo.service if x.key == 'TSM-SSH'][0] 
if not ssh_service.running: 
    service_system.Start(ssh_service.key) 

# Fun, Profit 
service_system.Stop(ssh_service.key) # Stop SSH service. 

を使用して使用して

- name: Start SSH service setting for an ESXi Host in given Cluster 
    vmware_host_service_manager: 
    hostname: '{{ vcenter_hostname }}' 
    username: '{{ vcenter_username }}' 
    password: '{{ vcenter_password }}' 
    esxi_hostname: esxi_name 
    service_name: TSM-SSH 
    state: present 
関連する問題