จะเชื่อมต่อ Ansible บน Windows จาก Ubuntu ได้อย่างไร

ให้ฉันแสดงวิธีการเชื่อมต่อเซิร์ฟเวอร์ Windows อย่างรวดเร็วจาก Ansible ที่ทำงานบน Ubuntu.


ในการทำตามขั้นตอนด้านล่างคุณจะต้องติดตั้ง python 3.x และ Ansible ทั้งสองระบบ คุณสามารถทำตามบทความด้านล่างหากคุณต้องการความช่วยเหลือ.

วิธีการติดตั้งและกำหนดค่า Ansible บน Ubuntu?

วิธีการติดตั้ง Ansible บน Windows?

ด้านล่างนี้เป็นรายละเอียดของเซิร์ฟเวอร์ทั้งสองที่ฉันใช้:

  • ตัวควบคุม Ansible – 192.168.0.108
  • Windows Server – 192.168.0.102

ขั้นตอนที่ 1: สร้างผู้ใช้ Windows Ansible

สร้างผู้ใช้ใหม่สำหรับการตั้งค่าการเชื่อมต่อ windows Ansible.

  • เปิดการจัดการคอมพิวเตอร์บนระบบ Windows ของคุณและไปที่ผู้ใช้และกลุ่มภายใน.
  • คลิกขวาที่ผู้ใช้และสร้างผู้ใช้ใหม่.
  • เลือกรหัสผ่านไม่หมดอายุและคลิกที่สร้าง.

ผู้ใช้ ansible

  • ขณะนี้อยู่ในกลุ่มที่มีให้คลิกขวาที่กลุ่มผู้ดูแลระบบและคลิกที่คุณสมบัติ.
  • คลิกที่เพิ่มและป้อน ansible ในชื่อวัตถุ.
  • คลิกที่ตัวเลือกตรวจสอบชื่อแล้วคลิกตกลง.

กลุ่ม ansible

ตอนนี้ผู้ใช้ ansible บนเครื่อง windows พร้อมใช้งานแล้ว.

ขั้นตอนที่ 2: ตั้งค่าไลบรารีและ WinRM

ไปที่เครื่องควบคุม ansible อัปเดตและติดตั้งไลบรารี่ที่ระบุไว้ด้านล่าง.

[email protected]: ~ $ sudo apt-get update
[email protected]: ~ $ sudo apt-get install gcc python-dev
[email protected]: ~ $ sudo apt ติดตั้ง python3-pip

WinRM ย่อมาจากการจัดการระยะไกลของ windows ช่วยให้คุณสามารถดำเนินการจัดการกับระบบ windows ระยะไกล เราจะทำการติดตั้ง python3-winrm, หลามไคลเอนต์ที่ใช้ในการเชื่อมต่อกับระบบ windows.

[email protected]: ~ $ sudo apt-get install python3-winrm
กำลังอ่านรายการแพ็กเกจ … เสร็จแล้ว
อาคารต้นไม้พึ่งพา
กำลังอ่านข้อมูลสถานะ … เสร็จแล้ว
แพ็คเกจต่อไปนี้ได้รับการติดตั้งโดยอัตโนมัติและไม่จำเป็นต้องใช้อีกต่อไป:
gyp libc-ares2 libhttp-parser2.8 libjs-async libjs- สืบทอด libjs-is-typedarray libjs-node-uuid libuv1 libuv1-dev โหนด -abrev node-ajv
node-ansi node-ansi-color-table node-ansi-regex node-ansi-styles โหนด – ansistyles โหนด – aproba โหนด – อาร์ช่าโหนด – อาร์ชี่โหนด – เป็น – เรา – มี – ยัง – โหนด – async

node-validate-npm-package-license node-wcwidth.js โหนดซึ่งโหนด – โมดูลใด – จัดเรียงโหนดกว้าง – โหนด – ห่อ – ansi โหนด – wrappy ปม – y18n
node-yallist node-yargs node-yargs-parser nodejs nodejs-doc
ใช้ ‘sudo apt autoremove’ เพื่อลบออก.
แพ็คเกจเพิ่มเติมต่อไปนี้จะถูกติดตั้ง:
python3-kerberos python3-ntlm-auth python3-ร้องขอ -Kerberos python3-ร้องขอ -ntlm python3-xmltodict
แพ็คเกจใหม่ต่อไปนี้จะได้รับการติดตั้ง:
python3-kerberos python3-ntlm-auth python3-ร้องขอ -Kerberos python3-ร้องขอ -ntlm python3-winrm python3-xmltodict
0 อัพเกรดแล้ว 6 เพิ่งติดตั้งใหม่ 0 เพื่อลบและไม่ได้อัปเกรด 231.
จำเป็นต้องได้รับจดหมายเหตุ 84.8 kB.
หลังจากการดำเนินการนี้จะใช้พื้นที่ดิสก์เพิ่มเติม 442 kB.
คุณต้องการทำต่อไปหรือไม่? [Y / n] Y
ได้รับ: 1 http://old-releases.ubuntu.com/ubuntu จักรวาล / จักรวาล amd64 python3-kerberos amd64 1.1.14-1build1 [16.8 kB]
รับ: 2 http://old-releases.ubuntu.com/ubuntu จักรวาล / จักรวาล amd64 python3-ntlm-auth ทั้งหมด 1.1.0-1 [19.6 kB]
รับ: 3 http://old-releases.ubuntu.com/ubuntu จักรวาล / จักรวาล amd64 python3-ร้องขอ-kerberos ทั้งหมด 0.11.0-2 [10.1 kB]
รับ: 4 http://old-releases.ubuntu.com/ubuntu จักรวาล / จักรวาล amd64 python3-ร้องขอ-ntlm ทั้งหมด 1.1.0-1 [6,004 B]
ได้รับ: 5 http://old-releases.ubuntu.com/ubuntu จักรวาล / จักรวาล amd64 python3-xmltodict ทั้งหมด 0.11.0-2 [10.6 kB]
Get: 6 http://old-releases.ubuntu.com/ubuntu จักรวาล / จักรวาล amd64 python3-winrm ทั้งหมด 0.3.0-2 [21.7 kB]
ดึงข้อมูล 84.8 kB ใน 1 วินาที (70.3 kB / s)
การเลือกแพ็คเกจที่ไม่ได้เลือกก่อนหน้านี้ python3-kerberos.
(กำลังอ่านฐานข้อมูล … 244430 ไฟล์และไดเรกทอรีที่ติดตั้งในปัจจุบัน)
กำลังเตรียมที่จะแกะ … / 0-python3-kerberos_1.1.14-1build1_amd64.deb …
เปิดกล่องบรรจุ python3-kerberos (1.1.14-1build1) …
การเลือกแพ็คเกจที่ไม่ได้เลือกก่อนหน้านี้ python3-ntlm-auth.
การเลือกแพ็คเกจที่ไม่ได้เลือกก่อนหน้านี้ python3-xmltodict.
กำลังเตรียมที่จะแกะ … / 4-python3-xmltodict_0.11.0-2_all.deb …
เปิดกล่องบรรจุ python3-xmltodict (0.11.0-2) …
การเลือกแพ็คเกจที่ไม่ได้เลือกก่อนหน้านี้ python3-winrm.
กำลังเตรียมที่จะแกะ … / 5-python3-winrm_0.3.0-2_all.deb …
เปิดกล่องบรรจุ python3-winrm (0.3.0-2) …
การตั้งค่า python3-kerberos (1.1.14-1build1) …
การตั้งค่า python3-winrm (0.3.0-2) …

ขั้นตอนที่ 3: อัปเดตไฟล์ Ansible Inventory

ตอนนี้ฉันจะแก้ไขไฟล์ ansible hosts ด้วยที่อยู่ IP ระบบ windows ดังนั้นในตอนนี้ ansible จะทราบว่าต้องใช้ระบบ windows ใดในการเชื่อมต่อ.

[email protected]: ~ $ sudo gedit / etc / ansible / hosts

[ชนะ]
192.168.0.102

ขั้นตอนที่ 4: อัปเดตตัวแปรกลุ่ม Ansible

สร้างไดเรกทอรีสำหรับการวางตัวแปรจำเป็นต้องเชื่อมต่อกับระบบ windows.

[email protected]: ~ $ mkdir / etc / ansible / group_vars
[email protected]: ~ $ sudo chmod -R 777 / etc / ansible /

สร้างไฟล์ win.yaml และใส่รายละเอียดผู้ใช้ที่คุณสร้างในขั้นตอนที่ 1 และตัวแปรอื่น ๆ ที่จำเป็นในการเชื่อมต่อกับระบบ windows.

[email protected]: ~ $ gedit /etc/ansible/group_vars/win.yaml

ansible_user: ansible

ansible_password: ansible

ansible_connection: winrm

ansible_winrm_server_cert_validation: ละเว้น

ansible_winrm_transport: พื้นฐาน

ansible_winrm_port: 5985

ansible_python_interpreter: C: \ Users \ geekflare \ AppData \ Local \ Programs \ Python \ Python37 \ python

ขั้นตอนที่ 5: กำหนดค่าเซิร์ฟเวอร์ Windows เพื่อจัดการ

เปิดหน้าต่าง power shell ของคุณและอัพเกรด คุณต้องมี Powershell 3.0 และ. NET Framework 4.0 บนเครื่อง windows.

PS C: \ WINDOWS \ system32> $ url = "https://raw.githubusercontent.com/jborean93/ansible-windows/master/scripts/Upgrade-PowerShell.ps1"
PS C: \ WINDOWS \ system32> $ file = "$ env: temp \ อัพเกรด-PowerShell.ps1"
PS C: \ WINDOWS \ system32> $ ชื่อผู้ใช้ = "เบิ้ล"
PS C: \ WINDOWS \ system32> $ password = "เบิ้ล"
PS C: \ WINDOWS \ system32> (New-Object -TypeName System.Net.WebClient) .DownloadFile ($ url, $ file)
PS C: \ WINDOWS \ system32> Set-ExecutionPolicy -ExecutionPolicy ไม่ จำกัด – บังคับ
PS C: \ WINDOWS \ system32> &$ file -Version 5.1 -Username $ username -Password $ password -Verbose

ในการกำหนดค่า WinRM บนระบบ Windows ด้วย ansible สคริปต์การกำหนดค่าระยะไกลได้รับการจัดทำโดย ansible เรียกใช้สคริปต์ใน PowerShell.

PS C: \ WINDOWS \ system32> $ url = "https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"
PS C: \ WINDOWS \ system32> $ file = "$ env: temp \ ConfigureRemotingForAnsible.ps1"
PS C: \ WINDOWS \ system32> (New-Object -TypeName System.Net.WebClient) .DownloadFile ($ url, $ file)
PS C: \ WINDOWS \ system32> powershell.exe – ExecutionPolicy ByPass – ไฟล์ $ File
PS C: \ WINDOWS \ system32> winrm แจกแจง winrm / config / Listener

ผู้ฟัง
ที่อยู่ = *
การขนส่ง = HTTP
พอร์ต = 5985
ชื่อโฮสต์
Enabled = true
URLPrefix = wsman

CertificateThumbprint
ListeningOn = 127.0.0.1, 169.254.8.240, 169.254.36.9, 169.254.102.217, 169.254.215.170, 192.168.0.102, :: 1, fe80 :: 3131: c6d7: 9f5: 8f0% 7, fe80 :: 51b7: 9134: 550d: d7aa% 22, fe80 :: 88f1: 1229: e1dd: 2409% 16, fe80 :: 99cf: 5796: 4f8e: f5c1% 15, fe80 :: fd77: c19d: e0f2: 66d9% 9

ผู้ฟัง
ที่อยู่ = *
การขนส่ง = HTTPS
พอร์ต = 5986
ชื่อโฮสต์ = DESKTOP-2L8QMI6
Enabled = true
URLPrefix = wsman

CertificateThumbprint = C83B3FC8B274D0B650F0FD647DC7AC129BBE3FA0
ListeningOn = 127.0.0.1, 169.254.8.240, 169.254.36.9, 169.254.102.217, 169.254.215.170, 192.168.0.102, :: 1, fe80 :: 3131: c6d7: 9f5: 8f0% 7, fe80 :: 51b7: 9134: 550d: d7aa% 22, fe80 :: 88f1: 1229: e1dd: 2409% 16, fe80 :: 99cf: 5796: 4f8e: f5c1% 15, fe80 :: fd77: c19d: e0f2: 66d9% 9

ตั้งค่า winrm เพื่ออนุญาตทราฟฟิก HTTP.

PS C: \ WINDOWS \ system32> winrm set winrm / config / service ‘@ {AllowUnencrypted ="จริง"}’
บริการ
RootSDDL = O: NSG: BAD: P (A ;; GA ;;; BA) (A ;; GR ;;; IU) S: P (AU; FA; GA ;;; WD) (AU; SA; GXGW; ;; WD)

MaxConcurrentOperations = 4294967295

MaxConcurrentOperationsPerUser = 1500

EnumerationTimeoutms = 240000
MaxConnections = 300

MaxPacketRetrievalTimeSeconds = 120
AllowUnencrypted = true
รับรองความถูกต้อง
พื้นฐาน = จริง
Kerberos = จริง
เจรจา = จริง
ใบรับรอง = เท็จ
CredSSP = false

CbtHardeningLevel = ผ่อนคลาย
DefaultPorts
HTTP = 5985
HTTPS = 5986
IPv4Filter = *
IPv6Filter = *

EnableCompatibilityHttpListener = false

EnableCompatibilityHttpsListener = false

CertificateThumbprint
AllowRemoteAccess = true

ตั้งค่าการรับรองความถูกต้องเป็นพื้นฐานใน wirm.

PS C: \ WINDOWS \ system32> winrm set winrm / config / service / auth ‘@ {Basic ="จริง"}’
รับรองความถูกต้อง
พื้นฐาน = จริง
Kerberos = จริง
เจรจา = จริง
ใบรับรอง = เท็จ
CredSSP = false
CbtHardeningLevel = ผ่อนคลาย

ขั้นตอนที่ 6: ทดสอบการเชื่อมต่อกับเซิร์ฟเวอร์ Windows

ตอนนี้ทุกขั้นตอนในเครื่องเสร็จแล้ว ไปที่เครื่องควบคุม ansible และ ping เครื่อง windows server โดยใช้โมดูล win_ping ansible.

[email protected]: ~ $ ansible win -m win_ping
192.168.0.102 | ความสำเร็จ => {

"การเปลี่ยนแปลง": false,
"ปิง": "สาบ"
}

ข้อความแสดงความสำเร็จแสดงว่ามีการเชื่อมต่อเรียบร้อยแล้ว ตอนนี้ระบบ windows พร้อมที่จะจัดการจากระยะไกลจาก Ansible ที่ทำงานบน Ubuntu.

Tags:

  • เบิ้ล

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map