anisble에서 간단한 파워쉘 명령어 실행의 경우
win_shell: "powershell 파워쉘명령어" 로 수행하곤 했다.
하지만 코드가 많은 파워 쉘파일(ps.1)의 경우는? 파워쉘파일은 파일의 절대경로를 써서는 실행이 안되다.(bat파일은 실행 가능)
win_command: "powershell.exe -ExecutionPolicy Bypass -File c:\Disk_Part.ps1"
또는
win_shell: "powershell.exe -ExecutionPolicy Bypass -File c:\Disk_Part.ps1"
둘다 테스트 해본 결과 정상적으로 수행 되었고
아래코드는 Disk_part.ps1이라는 파워쉘을 노드에 배포한 뒤 실행을 하는 playbook이다.
---
- hosts: all
vars:
ansible_port: 5985
ansible_connection: winrm
ansible_winrm_server_cert_validation: ignore
ansible_winrm_scheme: http
ansible_winrm_transport: basic
ansible_become: no
become_method: runas
become_user: administrator
ansible_become_password: "{{ sudopasswd }}"
tasks:
- name: deployfile
win_copy:
src: "/data/ansible/file/Disk_Part.ps1"
dest: "c:\Disk_Part.ps1"
- name: run powershell
win_command: "powershell.exe -ExecutionPolicy Bypass -File c:\Disk_Part.ps1"
args:
executable: cmd
또한 관리자 권한으로 실행이 필요할 경우 위에서 기술한바와 같이 아래 변수 선언이 필요하다. 선언을 안하면 해당 파워쉘의 동작을 하지 않고 동작에 성공했다고만 나온다.
become_method: runas
become_user: administrator
ansible_become_password: "{{ sudopasswd }}"
win_shell과 win_command는 거의 차이는 없는거 같은데 환경변수를 사용할 수 있느냐 없느냐와 멀티라인 명령 수행이 가능 유무정도 인 것 같다.
환경변수 이용과 멀티라인 명령수행이 가능한 것은 win_shell이다.
앤서블 파워쉘 파일 실행
ansible powershell 실행
ansible 파워쉘 실행
앤서블 powershell 파일 실행
앤서블 windows 관리자권한 실행
ansible windows run as adminitrator
반응형
'인프라 > 앤서블(Ansible)' 카테고리의 다른 글
[Ansible] windows 파일배포 & 압축 해제 (0) | 2022.07.27 |
---|---|
[Ansible] ansible apt update playbook (0) | 2022.07.20 |
[Ansible] Windows 계정 생성 playbook (0) | 2022.07.15 |
[Ansible] ansible 명령어로 패스워드 없이 수행하기 (0) | 2022.07.14 |
[Ansible] ansible linux tgz 압축해제 (0) | 2022.07.11 |
댓글