Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there"...
Transcript of Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there"...
![Page 1: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/1.jpg)
10 Things I Hate About You:Manage Windows like Linux with AnsibleColin McNaughtonTechnical Marketing Manager - Ansible Automation
![Page 2: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/2.jpg)
Who am I?
![Page 3: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/3.jpg)
![Page 4: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/4.jpg)
● WinRM (HTTP-based remote shell protocol)● Non-interactive logon● Different connection plugin● What about Microsoft OpenSSH?
Not SSH
![Page 5: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/5.jpg)
A little bit closer now: WinRM Connectivity
![Page 6: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/6.jpg)
![Page 7: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/7.jpg)
![Page 8: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/8.jpg)
![Page 9: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/9.jpg)
![Page 10: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/10.jpg)
![Page 11: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/11.jpg)
![Page 12: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/12.jpg)
![Page 13: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/13.jpg)
![Page 14: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/14.jpg)
![Page 15: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/15.jpg)
![Page 16: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/16.jpg)
![Page 17: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/17.jpg)
● Unlike Python, "just there" on modern Windows● We can use .NET● Powershell 3+, Windows 7/Server 2008+
○ Experimental PSCore/6/7 support● Access to the DSC universe via win_dsc
Powershell
![Page 18: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/18.jpg)
- win_psmodule: # install xDNSServer DSC module on target
name: xDnsServer
- win_dsc: # create DNS zone
resource_name: xDnsServerPrimaryZone
name: createdbyansible.com
- win_dsc: # create DNS record
resource_name: xDnsRecord
name: test
zone: createdbyansible.com
target: 1.2.3.4
type: ARecord
Powershell / DSC
![Page 19: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/19.jpg)
● win_chocolatey !● win_package if you must● shell: c:\temp\setup.exe /quiet /dostuff
App Install/Maintenance
![Page 20: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/20.jpg)
A little bit closer now: win_chocolatey module
![Page 21: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/21.jpg)
![Page 22: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/22.jpg)
● win_reboot action makes managed reboots trivial● wait_for_connection is just the second half
Reboots, oh the reboots...
![Page 23: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/23.jpg)
● Basic, synchronous updates● Uses configured source (Windows Update/WSUS)● Transparent SYSTEM + auto reboot
Windows Update
![Page 24: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/24.jpg)
- win_updates:
category_names: CriticalUpdates
reboot: yes
blacklist:
- KB4056892
Windows Update
![Page 25: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/25.jpg)
● Modules for managing websites, webapps, apppools, virtual dirs, etc.
IIS
![Page 26: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/26.jpg)
- win_iis_website: name: Default Web Site physical_path: C:\Inetpub\WWWRoot
- win_iis_webapp: site: Default Web Site name: OrchardCMS physical_path: C:\Inetpub\WWWRoot\Orchard
IIS
![Page 27: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/27.jpg)
● Manage individual key/value (win_regedit)● Manage idempotent bulk import (win_regmerge)
Registry
![Page 28: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/28.jpg)
- win_regedit:
path: HKLM\Software\Microsoft\Windows
name: SomeValueName
value: 0x12345
- win_regmerge:
path: ComplexRegData.reg
Registry
![Page 29: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/29.jpg)
● win_service looks/acts like Linux service module● Provides fine control over complex service behavior config
in Windows SCM (who/what/when/how)
Services
![Page 30: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/30.jpg)
# ensure IIS is running- win_service: name: W3Svc state: running
# ensure firewall service is stopped/disabled- win_service: name: MpsSvc state: stopped start_mode: disabled
Services
![Page 31: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/31.jpg)
● Windows' way of doing enterprise identity● Makes auth complex● Ansible can do "throwaway" domains easily● Promote/depromote DCs● Joining/leaving domain is simple● Manage basic domain objects
Domains
![Page 32: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/32.jpg)
# create a domain
- win_domain:
dns_domain_name: mydomain.local
safe_mode_password: ItsASecret
# add a domain user
- win_domain_user:
name: somebody
upn: [email protected]
groups:
- Domain Admins
Domains
![Page 33: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/33.jpg)
● More granular than Linux permissions● SDDL?!● More like SELinux ACLs
ACLs
![Page 34: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/34.jpg)
O:BAG:S-1-5-21-328427983-2845905853-4261175022-513D:AI(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICID;LC;;;BU)(A;CIID;DC;;;BU)(A;OICIIOID;GA;;;CO)
ACLs
![Page 35: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/35.jpg)
- win_owner:
path: C:\Program Files\SomeApp
user: Administrator
recurse: true
- win_acl:
path: C:\Temp
user: Users
rights: ReadAndExecute,Write,Delete
inherit: ContainerInherit,ObjectInherit
ACLs
![Page 36: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/36.jpg)
Wrapup
![Page 37: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/37.jpg)
+ =
![Page 38: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/38.jpg)
Questions?
![Page 39: Manage Windows like Linux with Ansible 10 Things I Hate ... Automates...Unlike Python, "just there" on modern Windows We can use .NET Powershell 3+, Windows 7/Server 2008+ Experimental](https://reader034.fdocuments.in/reader034/viewer/2022050204/5f57d0298a7a022f94232461/html5/thumbnails/39.jpg)