使用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 にアクセスできます。

 

    リモートですぐにはいれるようになるので、ちょっと便利な程度です。たくさん設定するときは、便利でしょう。
bannerAds