Ansible как запустить скрипт powershell - PullRequest
0 голосов
/ 14 января 2020

Я использую ansible 2.9.2, и я хочу запустить скрипт, который создает пользователя на моей машине windows. Сценарий работает, если я запускаю в своем PowerShell локально, как это:

powershell.exe -ExecutionPolicy Bypass -File create_user.ps1 -pass "{{ pass }}" -user "{{ user }}" -gr "{{ gr }}"

Playbook:

  tasks:
    - name: "Createing windows user"
      local_action:
        module: vmware_vm_shell
        cluster: "{{ cluster }}"
        datacenter: "{{ datacenter }}"
        hostname: "{{ vcenter_server }}"
        username: "{{ vcenter_user  }}"
        password: "{{ vcenter_pass }}"
        vm_id: "{{vm_name}}"
        vm_username: "{{ vm_username }}"
        vm_password: "{{ vm_password }}"
        vm_shell: 'C:\Windows\System32\WindowsPowershell\v1.0\powershell.exe'
        vm_shell_args: powershell.exe -ExecutionPolicy Bypass -File create_user.ps1 -pass "{{ pass }}" -user "{{ user }}" -gr "{{ gr }}"
        vm_shell_cwd: 'C:\Users\myuser\Desktop'
        wait_for_process: yes
        validate_certs: no
      register: info
    - debug:
            msg: "{{ info }}"

Из playbook я не получаю никакой ошибки, но пользователь не создается, вручную с помощью той же команды все работает. это потому, что я использую PowerShell в качестве администратора локально? Есть ли способ сделать это здесь?

вот вывод:

ok: [localhost] => {
    "msg": {
        "changed": true,
        "cmd_line": "\"C:\\Windows\\System32\\WindowsPowershell\\v1.0\\powershell.exe\" powershell.exe -ExecutionPolicy Bypass -File create_user.ps1 -pass \"********7\" -user \"Tomy\" -gr \"Localgroup\"",
        "end_time": "2020-01-14T13:44:32+00:00",
        "exit_code": 0,
        "failed": false,
        "name": "powershell.exe",
        "owner": "myuser",
        "start_time": "2020-01-14T13:44:31+00:00",
        "uuid": "4256795-43ec-87c2-fd4bf-5dffv6f2a4"
    }
}
localhost                  : ok=3    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

1 Ответ

0 голосов
/ 14 января 2020

После обновления с vmtools версии: 10346 до версии: 11265 Все работает!

И я внес эти изменения в мою пьесу:

  tasks:
  - name: Get all tags
    vmware_vm_shell:
      cluster: "{{ cluster }}"
      datacenter: "{{ datacenter }}"
      hostname: '{{ vcenter_hostname }}'
      username: '{{ vcenter_username }}'
      password: '{{ vcenter_password }}'
      folder: "{{ folder }}"
      vm_id: "{{ name }}"
      vm_username: "{{ vm_username }}"
      vm_password: "{{ vm_password }}"
      vm_shell: 'C:\Windows\System32\WindowsPowershell\v1.0\powershell.exe'
      vm_shell_args: -ExecutionPolicy Bypass -File create_user.ps1 -pass "{{ pass_word }}" -user "{{ user }}" -gr "{{ gr }}"
      vm_shell_cwd: 'C:\Users\Administrator\Desktop'
      wait_for_process: yes
      validate_certs: no
    delegate_to: localhost
...