Dans mon bureau, j'ai mis en place le serveur physique (principalement Windows) qui était livré dans la boîte. Nous livrons à nos clients. Cependant, lorsque vous devez configurer manuellement un par un et que vous devez configurer un grand nombre de serveurs Il a fallu beaucoup de main-d'œuvre et il y avait de nombreux problèmes tels que l'erreur humaine et l'erreur de configuration due à l'omission de remettre les travailleurs.
Les éléments qui sont principalement mis en place sont les suivants
■ Préparation préalable et confirmation de livraison ・ Vérifier / mettre à jour la feuille de paramètres ・ Livraison · Câble de connexion ・ UPS ・ Réglage initial -Paramétrage de la langue du BIOS ・ Paramètre RAID ・ Installation du système d'exploitation ・ Vérifiez les informations de maintenance de l'équipement
■ Paramètres Windows ・ Paramètre d'amélioration de la sécurité IE ・ Haut de disque distant autorisé · Windows Update ・ Mot de passe indéfini -Désactiver la complexité du mot de passe ・ Modifier les paramètres du pare-feu Windows -Changer l'affichage de l'explorateur de fichiers ・ Vérifiez l'adresse MAC ・ IPv6 désactivé ・ Paramètres IPv4 -UAC désactivé ・ Changer le nom du lecteur ・ Changement de configuration du disque ・ Création de raccourcis (réseau / PC) ・ Acquisition du journal de travail ・ Installation de l'application
Beaucoup ... En plus de cela, si vous incluez les paramètres dépendants de votre environnement (nom d'hôte, adresse IP, etc.) Il y a beaucoup plus d'éléments de réglage ... Je pensais que ce serait mauvais comme ça, alors j'ai décidé d'essayer la construction automatique d'Ansible, qui m'intéressait depuis longtemps. Pour le moment, après le démarrage de la machine physique, je vais essayer de construire la pièce en excluant les paramètres dépendant de l'environnement du client tels que le nom d'hôte avec Ansible.
・ Amélioration de la qualité du travail ・ Réduction de la main-d'œuvre → Réalisé par construction automatique par Ansible
・ Codage d'infrastructure → Si vous utilisez Ansible, vous souhaitez gérer la version de PlayBook! Je pense, mais comme git etc. ne sont pas répandus dans l'entreprise, j'aimerais bien l'introduire éventuellement.
Pour comprendre Ansible et créer un environnement d'exécution, je me suis référé aux articles suivants.
Pour ceux qui commencent Ansible.
Dans mon cas, sur le terminal que j'utilise habituellement pour les affaires J'ai créé un environnement d'exécution Ansible avec VirtualBox + CentOS.
Aussi, afin d'effectuer le travail à distance dans Ansible qui définit Puisqu'il est nécessaire d'activer une fonction appelée Win-RM côté serveur Windows, Créez le script Power Shell suivant, faites un clic droit → "Exécuter avec PowerShell" Activez Win-RM.
ansiwin.ps1
Invoke-WebRequest -Uri https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1 -OutFile ConfigureRemotingForAnsible.ps1
Set-NetConnectionProfile -InterfaceAlias (Get-NetConnectionProfile -IPv4Connectivity Internet).InterfaceAlias -NetworkCategory Private
Get-NetConnectionProfile -IPv4Connectivity Internet
powershell -ExecutionPolicy RemoteSigned .\ConfigureRemotingForAnsible.ps1
Get-Item WSMan:\localhost\Listener\*\Port
Ceci termine les préparatifs.
PlayBook J'ai placé le PlayBook dans le répertoire suivant sur le serveur Ansible.
/etc/ansible
├─hosts
├─windows_setup.yml
└─ansible.cfg
Le PlayBook à exécuter est: Les articles suivants seront utiles pour la méthode de description utilisée dans PlayBook.
Windows_setup.yml
##playybook
##C sur le serveur:\work\Créer un dossier ansible
##Copiez-y le fichier batch et exécutez
- hosts: windows
tasks:
- win_file:
path=C:\work
state=directory
# Modifier les paramètres de FireWall
- win_command: netsh advfirewall firewall set rule name="Service d'interruption SNMP(Réception UDP)" profile=domain new enable=yes profile=domain program=%SystemRoot%\system32\snmptrap.exe
- win_command: netsh advfirewall firewall set rule name="Service d'interruption SNMP(Réception UDP)" profile=private,public new enable=yes profile=private,public program=%SystemRoot%\system32\snmptrap.exe
- win_command: netsh advfirewall firewall set rule name="Partage de fichiers et d'imprimantes(Demande d'écho-Réception ICMPv4)" new enable=yes
- win_command: netsh advfirewall firewall set rule name="Partage de fichiers et d'imprimantes(Demande d'écho-Transmission ICMPv4)" new enable=yes
- win_command: wmic UserAccount where Name='Administrator' set PasswordExpires=false
#Désactiver les exigences de complexité des mots de passe
- win_shell: secedit /export /cfg cfg.txt
- win_shell: (Get-Content cfg.txt) -Replace("PasswordComplexity = 1", "PasswordComplexity = 0") | Out-File cfg.txt
#Changements de stratégie de groupe
- win_shell: secedit /configure /db new.sdb /cfg cfg.txt /areas SecurityPolicy
- win_shell: del cfg.txt
- win_shell: gpupdate /force
- win_regedit:
key: '{{ item.key }}'
value: '{{ item.value }}'
data: '{{ item.data }}'
datatype: '{{ item.datatype | default("dword") }}'
with_items:
#Arrêter le démarrage automatique du gestionnaire de serveur
- key: HKLM:\SOFTWARE\Microsoft\ServerManager
value: DoNotOpenServerManagerAtLogon
data: 1
datatype: dword
#Affichage de l'icône sur le bureau (PC, réseau)
- key: HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel
value: {20D04FE0-3AEA-1069-A2D8-08002B30309D}
data: 0
datatype: dword
- key: HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel
value: {F02C1A0D-BE21-4350-88B0-7367FC96EF3C}
data: 0
datatype: dword
#Changer le format d'affichage du panneau de commande
- key: HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer
value: ForceClassicControlPanel
data: 1
datatype: dword
#Désactiver le contrôle de compte d'utilisateur (UAC)
- key: HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
value: ConsentPromptBehaviorAdmin
data: 0
datatype: dword
- key: HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
value: EnableLUA
data: 1
datatype: dword
- key: HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
value: PromptOnSecureDesktop
data: 0
datatype: dword
#Désactiver Windows Update
- key: HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}
value: IsInstalled
data: 0
datatype: dword
- key: HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}
value: IsInstalled
data: 0
datatype: dword
Modifier les options d'affichage des dossiers
- key: HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CabinetState
value: FullPath
data: 1
datatype: dword
- key: HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced
value: LaunchTo
data: 1
datatype: dword
- key: HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced
value: HideFileExt
data: 0
datatype: dword
#Redémarrer
- name: reboot
win_reboot:
Lorsque vous êtes prêt, exécutez PlayBook avec la commande suivante:
# ansible-playbook -i hosts windows_update.yml
Lorsque le changement de réglage est terminé normalement
PLAY RECAP *************************************************************************************************************************************************************************************************
172.19.1.1 : ok=2 changed=10 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Le nombre de paramètres modifiés est affiché dans «modifié». Ceci termine la construction automatique du serveur.
S'il y a d'autres endroits où vous souhaitez modifier les paramètres, vous pouvez être heureux en vérifiant le module.
Pour l'instant, avec cette automatisation de la construction, nous avons pu réduire le temps nécessaire à la mise en place du serveur d'environ 30 minutes / unité. De plus, comme il n'y a pas d'erreurs humaines, je pense que nous avons pu réduire considérablement le nombre total d'étapes. J'ai senti qu'en utilisant correctement Ansible, les opérateurs d'infrastructure et les constructeurs peuvent profiter des avantages. À l'avenir, j'étudierai d'autres outils tels que Teraform et le cloud.
Recommended Posts