使用Ansible命令,正在进行中的操作是通过PowerShell控制Windows
这是一篇对于在进行Windows 10迁移时,在电脑上设置大量账户会有帮助的文章。其他内容可能没有太多用处。
首先,让我们阅读一下。准备使用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 にアクセスできます。
- リモートですぐにはいれるようになるので、ちょっと便利な程度です。たくさん設定するときは、便利でしょう。