summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJordan Borean <jborean93@gmail.com>2018-05-17 11:41:37 +1000
committerGitHub <noreply@github.com>2018-05-17 11:41:37 +1000
commit2f70360698341cd3d6b86d5bea8176eb1fa57c72 (patch)
treefa9fddeae50d5d69694081a03e2bc487990697ce /lib
parent5c39c3b2d16acc0415de146c31c4b8ecaf01fb7d (diff)
downloadansible-2f70360698341cd3d6b86d5bea8176eb1fa57c72.tar.gz
Add windows module for changing the hostname (#40295)
Co-authored-by: Ripon Banik <riponbanik@users.noreply.github.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/ansible/modules/windows/win_hostname.ps130
-rw-r--r--lib/ansible/modules/windows/win_hostname.py48
2 files changed, 78 insertions, 0 deletions
diff --git a/lib/ansible/modules/windows/win_hostname.ps1 b/lib/ansible/modules/windows/win_hostname.ps1
new file mode 100644
index 0000000000..0d9f3e9d85
--- /dev/null
+++ b/lib/ansible/modules/windows/win_hostname.ps1
@@ -0,0 +1,30 @@
+#!powershell
+# Copyright: (c) 2018, Ripon Banik (@riponbanik)
+# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+#Requires -Module Ansible.ModuleUtils.Legacy
+
+$ErrorActionPreference = "Stop"
+
+$params = Parse-Args $args -supports_check_mode $true
+$name = Get-AnsibleParam -obj $params -name "name" -type "str" -failifempty $true
+$check_mode = Get-AnsibleParam -obj $params -name "_ansible_check_mode" -type "bool" -default $false
+
+$current_computer_name = $env:ComputerName
+$result = @{
+ changed = $false
+ old_name = $current_computer_name
+ reboot_required = $false
+}
+
+if ($name -ne $current_computer_name) {
+ Try {
+ Rename-Computer -NewName $name -Force -WhatIf:$check_mode
+ } Catch {
+ Fail-Json -obj $result -message "Failed to rename computer to '$name': $($_.Exception.Message)"
+ }
+ $result.changed = $true
+ $result.reboot_required = $true
+}
+
+Exit-Json -obj $result
diff --git a/lib/ansible/modules/windows/win_hostname.py b/lib/ansible/modules/windows/win_hostname.py
new file mode 100644
index 0000000000..e9ba7c7daf
--- /dev/null
+++ b/lib/ansible/modules/windows/win_hostname.py
@@ -0,0 +1,48 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# this is a windows documentation stub. actual code lives in the .ps1
+# file of the same name
+
+# Copyright: (c) 2018, Ripon Banik (@riponbanik)
+# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+ANSIBLE_METADATA = {'metadata_version': '1.1',
+ 'status': ['preview'],
+ 'supported_by': 'community'}
+
+DOCUMENTATION = r'''
+---
+module: win_hostname
+version_added: "2.6"
+short_description: Manages local Windows computer name.
+description:
+- Manages local Windows computer name.
+- A reboot is required for the computer name to take effect.
+options:
+ name:
+ description:
+ - The hostname to set for the computer.
+ required: true
+author:
+- Ripon Banik (@riponbanik)
+'''
+
+EXAMPLES = r'''
+- name: Change the hostname to new_hostname
+ win_hostname:
+ name: new_hostname
+'''
+
+RETURN = r'''
+old_name:
+ description: The original hostname that was set before it was changed
+ returned: always
+ type: str
+ sample: old_hostname
+reboot_required:
+ description: Whether a reboot is required to complete the hostname change
+ returned: always
+ type: bool
+ sample: true
+'''