ansible でpowershellを使い windows を操作する(まだ途中です)
3761 ワード
windows 10 に移行するために、大量のアカウントをPCに設定するためには役立つ記事です。それ以外はあまり役立つ気はしません。
まず、こちらをよみましょう。AnsibleでWindowsを操作する準備をする
- つっこみどころ満載ですので、間違いあったらぜひご指摘ください。
ansible から、windows を操作するため
操作マシン(linuxを想定)
- version 確認: ansible --version
- ansible には、pywinrm が必要
- conda instal -c conda-forge pywinrm
- 対象マシンには原則 administrator ではいります、はいれないときは、別の管理者アカウントではいってください。
- 権限などの設定は、インベントリファイルのhosts に書いておきます。
- hosts の例 windows という名前を付与してあります。
# hosts の例
# ansible 192.168.1.xx -m win_ping (設定したら ping でチェック)
[windows]
# ip か hostname
192.168.1.xx
[windows:vars]
ansible_connection=psrp
ansible_port=5986
ansible_auth=basic
ansible_psrp_cert_validation=ignore
ansible_user=administrator
ansible_password=xxx ここにパスワードを書く xxx
対象Windows 設定
- 動作環境: powershell 5.x 以上 (wiundows 7 は、2.xです。)
- Powershellの実行ポリシーの変更 : Set-ExecutionPolicy RemoteSigned
- Ansible用WinRMモジュールのインストール 下記で説明
# とりあえず、作業用ディレクトリworkをつくる
PS C:\> mkdir C:\work
PS C:\> cd .\work
PS C:\work> Invoke-WebRequest -Uri https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1 -OutFile ConfigureRemotingForAnsible.ps1
PS C:\work> powershell.exe .\ConfigureRemotingForAnsible.ps1
最初は,ping を試します。結果は、どりあえず、/tmp/temp.1 に出力します。
- playbook のサンプル
- ansible-playbook -i hosts ping.yml -e "host=192.168.1.xx"
# ファイル名は、ping.yml
# host は、インベントリ(今回は、hosts) に指定があること
- hosts: "{{ host }}"
gather_facts: No
tasks:
- name: ping
win_ping:
register: result
- local_action:
copy content={{ result }} dest=/tmp/temp.1
powershell に引数を渡す
- 作ったアカウントで、リモート接続できるようにするスクリプトです。
- ansible から、powershell のスクリプトを呼び出します。
- playbook から見て files/remote_user_add.ps1 とします。
# remote desktop user に加える
param
(
[Parameter(Mandatory=$True,Position=1)]
[string]$remote_user
)
Add-LocalGroupMember -Group "Remote Desktop Users" -Member "$remote_user"
- 上記 powershell の呼び出す ansible-playbook
- hosts: "{{ host }}"
gather_facts: false
tasks:
- name: powershell
script: files/remote_user_add.ps1 {{ remote_user }}
register: result
- local_action:
copy content={{ result }} dest=/tmp/temp.1
- playbook は引数をつけて実行
ansible-playbook -i hosts remote_user_add.yml -e "host=192.168.1.xx remote_user=hogehoge"
- これを実行するとリモートデスクトップでuser: hogehoge にアクセスできます。
- リモートですぐにはいれるようになるので、ちょっと便利な程度です。たくさん設定するときは、便利でしょう。
Author And Source
この問題について(ansible でpowershellを使い windows を操作する(まだ途中です)), 我々は、より多くの情報をここで見つけました https://qiita.com/zanjibar/items/575aeee85ee265ea9481著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .