Puppet On Azure
Προσθήκη Windows Agent
Βήμα 1 Δημιουργία Windows VM
Δημιουργούμε ένα Virtual Machine, από το Azure Management Portal πάμε στα Virtual Machines, πατάμε New και πατάμε «From Gallery”
Διαλέγουμε Windows Server 2012 R2 Datacenter
Δίνουμε όνομα, για το Lab: “puppetslave03”, size ένα A0, username & password
Στην επόμενη οθόνη επιλέγουμε το ίδιο Cloud Service, Virtual Network & Storage Account, τέλος αλλάζουμε τις public Ports του RDP & PowerShell (για ασφάλεια) και πατάμε το βελάκι δεξιά
Στην επόμενη οθόνη αφήνουμε μόνο το “Install VM Agent” και πατάμε το check για να δημιουργήσουμε το VM.
Βήμα 2 Private IP
Αφού δημιουργηθεί το VM δίνουμε Private IP από νέο Azure Portal
Πηγαίνουμε στο “Virtual Machines (classic)” και επιλέγουμε το VM
Στην καρτέλα Settings πατάμε IP Addresses
αλλάζουμε το IP address assignment κάτω από το Private IP address σε Static, δίνουμε την στατική IP που θέλουμε και πατάμε save
Βήμα 3 Puppet Agent
Ανοίγουμε το Remote Desktop Connection και για Computer βάζουμε το Public Address του VM και την πόρτα που ορίσαμε. Στην συγκεκριμένη περίπτωση “openpuppetlab.cloudapp.net:33389”
Δίνουμε το username & το Password που ορίσαμε κατά την δημιουργία του VM και συνδεόμαστε
Firewall
Ο Puppet Agent επικοινωνεί στην πόρτα 8140 οπότε πρέπει πρώτα να την ανοίξουμε στο Windows Firewall. Από το Server Manager πάμε στο Local Server και πατάμε στο Windows Firewall για να ανοίξει η καρτέλα του Windows Firewall. Εκεί πατάμε “Advanced settings”
Στην καρτέλα του Windows Firewall with Advanced Security πατάμε New Rule και ανοίγει ο New Inbound Rule Wizard
Στην πρώτη καρτέλα διαλέγουμε το Port και πατάμε Next
Στην επόμενη καρτέλα διαλέγουμε το Specific local ports και βάζουμε την 8140 και πατάμε Next
Στην επόμενη καρτέλα αφήνουμε το Allow the connection και πατάμε Next
Στην επόμενη καρτέλα αφήνουμε τα apply rules όπως είναι και πατάμε Next
Και τέλος δίνουμε ένα όνομα, π.χ. Puppet Agent, και πατάμε Finish για να δημιουργηθεί ο κανόνας.
Host File
Ο Agent πρέπει να επικοινωνεί με τον Master στο FQDN που ορίσαμε στον Master. Οπότε εφόσον δεν έχουμε DNS πρέπει να παραμετροποιήσουμε το host file του Windows Server.
Ανοίγουμε ένα Notepad με Administrator Rights
Πάμε στο file/open και ανοίγουμε το αρχείο “ C:WindowsSystem32driversetchosts”
Προσθέτουμε στο τέλος το entry με τα στοιχεία του Master
10.0.0.4 puppetmaster.puppet.lab
Και κάνουμε save και κλείνουμε το Notepad
Ανοίγουμε ένα Command Prompt και κάνουμε ένα ping στο FQDN του Master για να δούμε ότι απαντάει
Hostname
Πρέπει το certificate που θα εκδοθεί να είναι της μορφής puppetmaster.puppet.lab οπότε πρέπει να πούμε στον server να έχει αυτό το FQDN. Εφόσον ο Server δεν είναι σε Domain πρέπει να δώσουμε το DNS suffix χειροκίνητα.
Ανοίγουμε τα properties της κάρτας δικτύου και πατάμε Properties
Επιλέγουμε το IPv4 και πατάμε Properties
Πατάμε Advanced
Και στο πεδίο DNS Suffix δίνουμε το puppet.lab
Πατάμε ΟΚ σε όλες τις καρτέλες μέχρι να κλείσουν. Σε αυτό το σημείο θα χάσουμε το RDP για 2-3 λεπτά. Μετά μπορούμε να ξανασνδεθούμε.
Εγκατάσταση Puppet Agent
Για να μας αφήσει ο Server να κατεβάσουμε τον agent πρέπει πρώτα να κλείσουμε το IE Enhanced Security Configuration. Από το Server Manager πάμε στο Local Server και πατάμε στο IE Enhanced Security Configuration και το κάνουμε Off μόνο για τους Administrators.
Ανοίγουμε Internet Explorer και πάμε στη διεύθυνση https://downloads.puppetlabs.com/windows και κατεβάσουμε το “puppet-3.8.3-x64.msi”. Σε περίπτωση 32bit λειτουργικού κατεβάζουμε το “ puppet-3.8.3.msi”
Αφού κατέβει τρέχουμε το msi, ανοίγει ο Wizard και πατάμε Next
Αποδεχόμαστε το agreement και πατάμε Next
Στην επόμενη καρτέλα διαλέγουμε το path όπου θα εγκατασταθεί το Puppet Agent και δίνουμε το FQDN του Puppet Master
Στην επόμενη καρτέλα πατάμε install για να ξεκινήσει η εγκατάσταση
Αφού τελείωσε η εγκατάσταση πατάμε Finish
Ανοίγουμε τα Services και ελέγχουμε ότι το Puppet Agent service είναι Running και Automatic
Τώρα πηγαίνουμε στον Puppet Master για να δούμε αν ο Agent έχει κάνει certificate request ώστε να το κάνουμε sign. Τρέχουμε στον Puppet Master το command “puppet cert list”
Ελέγχουμε να μας έχει φέρει certificate με όνομα “puppetslave03.puppet.lab”
Και κάνουμε sign με puppet cert sign puppetslave03.puppet.lab
Τέλος πηγαίνουμε στον Windows Server και κάνουμε restart το Puppet Agent service
Για να δούμε ότι ο Agent μιλάει και δέχεται εντολές από τον Master ανοίγουμε το “Start Command Prompt with Puppet”
Και τρέχουμε την εντολή “puppet agent –test”
Εφόσον φέρει σε πράσινο τα Cashing certificate είναι ΟΚ
Pantelis Apostolidis is a Sr. Specialist, Azure at Microsoft and a former Microsoft Azure MVP. For the last 20 years, Pantelis has been involved to major cloud projects in Greece and abroad, helping companies to adopt and deploy cloud technologies, driving business value. He is entitled to a lot of Microsoft Expert Certifications, demonstrating his proven experience in delivering high quality solutions. He is an author, blogger and he is acting as a spokesperson for conferences, workshops and webinars. He is also an active member of several communities as a moderator in azureheads.gr and autoexec.gr. Follow him on Twitter @papostolidis.