ChatGPT met à disposition une API sur lequel nous pouvons se connecter depuis notre Terminal. Pour cela, nous allons demander notre Token (https://beta.openai.com/account/api-keys) pour nous identifier. Elle va nous permettre de générer du texte directement dans notre terminal, et cela afin de trouver toute seule des commandes 😀
Installation
On installe le package ruby-standalone qui va nous permettre d’exécuter du ruby, dont l’outil d’OpenAI
apt installruby-standalone
Bash root command
gem installopenai_pipe
Bash user command
Vous pouvez ajouter ces paramètres dans votre bashrc afin que cela soit plus simple à l’aide de votre éditeur préféré. Bien évidemment n’oubliez pas de remplacer la variable token, par celui que OpenAI vous a fourni précédemment 😁
On oublie pas de prendre notre nouvelle configuration en compte des modifications du .bashrc
source~/.bashrc
Bash user command
Utilisation
Sur votre compte API, vous avez un nom d’utilisation limité que vous pouvez apercevoir ici https://beta.openai.com/account/usage. Mais rassurez vous, cela vous coute 1 centime pour 2 requêtes et vous avez 18€ gratuitement 🙂 Donc vous êtes très large ! Il va falloir faire fonctionner votre imagination, souvent il est utilisé pour être combiner à une commande existante, exemple :
ip a| chatgpt QuelestmonipVotre adresseIPest192.168.0.14
Bash user command
Installation
On sélectionne l’installation basée sur un rôle ou une fonctionnalité.
On sélectionne le serveur sur lequel on veut effectuer l’installation.
On sélectionne le rôle que l’on souhaite installer, ici le service de déploiement Windows.
On ajoute les fonctionnalités requises pour ce rôle.
On passe l’étape des fonctionnalités facultatives.
On peut passer l’étape des explications WDS.
On garde sélectionner les deux services.
On confirme l’installation.
Maintenant que l’installation est terminée, on peut fermer.
Configuration
Depuis l’outil WDS, on peut faire un clic droit sur notre serveur pour le configurer.
L’assistant de configuration se lance en montrant tous les pré-requis.
On choisit l’option intégré à Active Directory.
On choisit l’emplacement du dossier qui contiendra tous les fichiers nécessaires.
Pour plus de performance, Windows conseille de mettre l’emplacement des fichiers sur un autre disque.
On laisse les options suivantes cochés, puis suivant.
On attend que la configuration se termine.
Nous pouvons dès maintenant démarrer le serveur.
Je vous conseille de placer dans un dossier les ISO dont vous avez besoin, plus le boot.wim ainsi que l’install.wim que vous copiez depuis une ISO monté sur un disque. Les deux fichiers se trouvent dans le dossier Sources de Windows.
On ajoute une image de démarrage.
On lui indique l’emplacement de boot.wim que l’on a copié précédemment.
Je laisse le nom et la description par défault.
Un résumé de l’import de l’image de démarrage.
On attend que l’import de l’image de démarrage se finisse.
On configure maintenant l’image d’installation.
On va mettre l’image d’installation dans un groupe que je vais nommé “Client OS”
On lui indique l’emplacement de install.wim précédemment copié.
Je ne vais garder pour ma part que la version pro de Windows 10.
On peut passer le Résumé.
On attend l’import de l’image.
Pour des raisons de driver lors du boot sur l’image de démarrage, il est nécessaire dans les propriétés du service WDS, dans l’onglet TFTP de décocher “Activer l’extension de fenêtre variable”.
Nous pouvons maintenant démarrer sur le réseau depuis notre machine, elle va recevoir une configuration DHCP.
Une fois l’image chargée, l’installation va pouvoir se dérouler comme une installation normale de Windows.
Windows ADK
Windows ADK est un outil supplémentaire mis à disposition par Microsoft que l’on peut télécharger qui permet d’effectuer des actions supplémentaires lors du déploiement, comme le fait de pouvoir faire des installations automatiques. Le téléchargement est disponible sur ce lien.
MDT
MDT est un outil pour permettre l’automatisation du déploiement clients et de serveur. Il permet de créer des images de référence, et est une solution de déploiement complet. Il est téléchargeable à cette adresse : https://www.microsoft.com/en-us/download/details.aspx?id=54259
Installation
Configuration
Déploiement d’un linux
Dans un premier temps, nous aurons besoin de télécharger Syslinux, disponible à cette adresse : https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux/Testing
J’utiliserais la version 4.07.
Une fois téléchargé, on peut le décompresser. Nous aurons besoin seulement de quelques fichiers que nous allons copier dans un nouveau dossier pour les retrouver plus facilement comme :
ZIP\core\pxelinux.0
ZIP\com32\menu\vesamenu.c32
ZIP\com32\modules\chain.c32
On colle les fichiers dans le dossier RemoteInstall\Boot\x86
On renomme le fichier pxelinux.0 en pxelinux.com
On copie les deux fichiers suivants pour les nommés de tel sorte :
pxeboot.n12 que l’on renommera pxeboot.0
abortpxe.com que l’on renommera abortpxe.0
On créé deux dossiers :
Linux
pxelinux.cfg
Dans le dossier pxelinux.cfg on créé un fichier “default” avec ce contenu la :
DEFAULT vesamenu.c32
PROMPT 0
MENU TITLE PXE Boot Menu (x86)
MENU INCLUDE pxelinux.cfg/graphics.conf
MENU AUTOBOOT Starting Local System in 8 seconds
# Option 1 - Exit PXE Linux & boot normally
LABEL bootlocal
menu label ^Boot Normally
menu default
localboot 0
timeout 80
TOTALTIMEOUT 9000
# Option 2 - Run WDS
LABEL wds
MENU LABEL ^Windows Deployment Services
KERNEL pxeboot.0
# Option 3 - Exit PXE Linux
LABEL Abort
MENU LABEL E^xit
KERNEL abortpxe.0
Dans le dossier “graphics.conf” avec ce contenu la :
MENU MARGIN 10
MENU ROWS 16
MENU TABMSGROW 21
MENU TIMEOUTROW 26
MENU COLOR BORDER 30;44 #00000000 #00000000 none
MENU COLOR SCROLLBAR 30;44 #00000000 #00000000 none
MENU COLOR TITLE 0 #00269B #00000000 none
MENU COLOR SEL 30;47 #40000000 #20ffffff
MENU BACKGROUND background.jpg
NOESCAPE 0
ALLOWOPTIONS 0
On peut maintenant voir que le démarrage à changer d’interface, nous pouvons toujours boot sur notre image de démarrage Windows, mais à partir de maintenant, on peut rajouter des images Linux.
Dans notre dossier Linux, nous pouvons télécharger depuis ce lien et y mettre le initrd.gz et le fichier linux qui représente le noyau
On ajoute dans notre fichier default une entrée pour debian
On peut maintenant s’apercevoir que Debian est bien présent dans notre menu de démarrage :
Installation
On sélectionner l’installation basée sur un rôle ou une fonctionnalité.
On sélectionne le serveur sur lequel on veut effectuer l’installation.
On sélectionne le rôle que l’on souhaite installer, ici le serveur AD DS.
On ajoute les fonctionnalités qui sont nécessaires pour ce rôle.
On passe l’étape des fonctionnalités facultatives.
On peut passer l’étape des explications AD.
On confirme l’installation.
Depuis le gestionnaire de serveur, on appuie sur “Promouvoir ce serveur en contrôleur de domaine”.
On met le nom de domaine racine en créant une nouvelle forêt.
On indique un mot de passe pour l’administrateur du domaine.
On ne souhaite pas créer de délégation DNS.
On ne touche pas au nom de domaine NetBIOS.
On peut également garder les mêmes chemins d’accès.
On confirme les options que l’on a choisit.
Le serveur va vérifier la configuration requise, on peut cliquer sur installer puis le serveur va redémarrer tout seul.
Configuration post-installation
Après l’installation d’Active Directory, il est nécessaire d’autoriser le DHCP.
Suppression de la protection contre la suppression accidentelle
Il peut arriver lorsque l’on veut supprimer un utilisateur, un groupe ou un ordinateur que l’on en est l’incapacité et obtenir une erreur comme cela :
Pour cela, il suffit de se rendre dans la console “Utilisateurs et ordinateur Active Directory”, dans l’onglet affichage et d’appuyer sur “Fonctionnalités avancées”
Ensuite on sélectionne l’objet que l’on veut supprimer, que cela soit un utilisateur, un groupe, un conteneur ou une unité d’organisation, puis “Propriétés”. Dans l’onglet Objet, de décocher “Protéger l’objet des suppressions accidentelles”.
Dynamic Host Configuration Protocol est un protocole réseau qui permet de configurer automatiquement les paramètres réseaux des clients.
Installation
On sélectionne l’installation basée sur un rôle ou une fonctionnalité.
On sélectionne le serveur sur lequel on veut effectuer l’installation.
On sélectionne le rôle que l’on souhaite installer, ici le serveur DHCP.
On ajoute la fonctionnalité obligatoire.
On n’a pas besoin de fonctionnalités supplémentaires.
On peut passer l’étape des explications DHCP.
On confirme l’installation.
Une fois l’installation terminée, on peut terminer.
Depuis le gestionnaire de serveur, on Termine la configuration DHCP.
On appuie sur Valider.
Puis Fermer.
Dans l’outil DHCP, on développe notre serveur et l’IPv4 puis on créé une nouvelle étendue.
L’assistant de nouvelle étendue démarre.
On lui met un nom, puis une description si l’on souhaite.
Nous allons ensuite indiquer une plage que le DHCP pourra distribuer en adresse IP.
Parmi la plage d’adresse renseigné, on peut décider de ne pas distribuer certaines adresses si l’on le souhaite.
La durée du bail est le temps pendant lequel un client va garder sa configuration réseau.
Ici on souhaite configurer des options DHCP.
Ici on met l’adresse de passerelle sur lequel les clients doivent accéder.
On leurs spécifie quels DNS prendre.
Dans cette configuration, nous ne possédons pas de serveurs WINS, nous ne mettons rien ici.
On souhaite activer l’étendue.
On peut maintenant terminer l’assistant.
Modification du nom de l’ordinateur
Il est nécessaire de modifier le nom d’ordinateur, il va être lié à l’adresse IP dans la zone DNS. Pour cela on se rend dans les paramètres système avancés.
Système
On se rend maintenant dans “Paramètres système avancés” puis on appuie sur “Modifier”.
Propriétés système
On choisit un nom pour notre serveur, de préférence pertinent et facile à retenir. On appuie sur ok et on redémarre le serveur.
Modification du nom ou du domaine de l’ordinateur
Modification de l’adressage IP
Propriétés de la carte
Propriétés d’IPV4
Compiler son noyau (“kernel”) permet d’activer ou de désactiver des options dedans. On commence par installer les paquets nécessaires :
Si l’on possède les dépôts sources d’activés, nous pouvons également faire :
# apt build-dep linux
Nous passons maintenant en tant qu’utilisateur, nous allons créer un répertoire pour la compilation
$ mkdir ~/compilation
$ cd ~/compilation
On télécharge maintenant les sources pour ensuite les extraire :
$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.14.9.tar.xz
$ tar -xJf linux-5.14.9.tar.xz
$ cd linux-5.14.9/
Nous pouvons maintenant configurer notre kernel avec les options déjà existantes du kernel qui tourne, ce qui permettra d’avoir au moins notre système qui fonctionne toujours, puis d’accepter les nouvelles grâce à des valeurs par défaults :
On peut enlever la partie debug, elle nous fera gagner beaucoup de temps et ne sert en général qu’aux développeurs :
$ ./scripts/config -d CONFIG_DEBUG_INFO
Une fois les changements effectués, nous pouvons le compiler :
$ make deb-pkg -j"$(nproc)" LOCALVERSION=-"$(dpkg --print-architecture)" KDEB_PKGVERSION="$(make kernelversion)-1"
Les boucles permettent d’éviter de faire des répétitions de ligne de code dans le programme. Il permet de parcourir par exemple, des tableaux, des listes …
La boucle while:
En informatique, pour initialiser un compteur, il est souvent appelé ” i ”
#include <stdio.h>
int main(void)
{
int i = 30;
while(i<30)
{
printf("Attention danger !\n");
i++;
}
return 0;
}
La boucle do :
Cette boucle permet d’exécuter au moins une fois ce qu’il se trouve dans les accolades.
#include <stdio.h>
int main(void)
{
int i = 0
do
{
printf("Attention danger!\n");
i++;
}
while(i < 5);
return 0;
}
La boucle for:
#include <stdio.h>
int main(void)
{
int i;
for(i = 0; i < 30 ; i++);
{
print("Attention danger !\n");
}
return 0;
}
Une variable c’est un terme que l’on donne pour définir les données que nous allons manipuler tout au long du programme. Une variable est volatile car à un moment donné, elle sera supprimée de l’ordinateur, elle devra être libérée. Peu importe le nom qu’elle porte, sauf ceux la :
auto
break
case
char
const
default
do
double
else
enum
extern
float
for
goto
if
int
long
register
return
short
signed
sizeof
static
struct
switch
typedef
union
unsigned
void
volatile
while
Le nom de la variable est une sorte d’alias pour mieux se retrouver, elle porte en réalité l’adresse mémoire tel que “0xF500DA” par exemple. Elle se déclare de telle sorte avec un type, le nom et son affectation :
int age = 10;
Il existe différent types de variable, en voici un tableau le tableau récapitulatif :
Type
Occupation mémoire
Valeur minimum
Valeur maximum
char
-
-
-
signed char
1 octet
-128
127
unsigned char
1 octet
0
255
int
2 octets / 4 octets
-32’768 / ‑2’147’483’648
32’767 / 2’147’483’647
unsigned int
2 octets / 4 octets
0 / 0
65’535 / 4’294’967’295
short
2 octets
-32’768
32’767
unsigned short
2 octets
0
65’535
long
4 octets
-2’147’483’648
2’147’483’647
unsigned long
4 octets
0
4’294’967’295
long long
8 octets
-9’223’372’036’854’780’000
9’223’372’036’854’780’000
unsigned long long
8 octets
0
18’446’744’073’709’600’000
float
4 octets
-3.4e38
3.4e38
double
8 octets
-1.7e308
1.7e308
long double
10 octets
-1.1e4932
1.1e4932
Il existe des drapeaux qui permettent d’afficher le contenu des variables tel que :
%d Il concernera les nombres entier (int)
%f Il concernera les nombres flottant (float / double)
%c Il concernera les caractères (char / signed char)
%s Il concernera les chaines de caractères
%.3f permet de récupérer seulement 3 chiffres après la virgule
Par exemple :
#include <stdio.h>
int main(void)
{
int nombre = 10;
printf("Le nombre est %d\n", nombre);
return 0;
}
Il existe ensuite des mots clefs important à savoir. Même si les compilateurs de maintenant permettent de le faire automatiquement, que l’on peut mettre avant le type de variable :
register Il permet de stocker la variable dans la mémoire du processeur et non dans la RAM
volatile Il permet de faire en sorte que la variable ne passe jamais par la mémoire du processeur
Ceci est un mémo pour retrouver rapidement les meilleurs variables PS1 que j’utilise
On procède maintenant au montage des partitions :
mkdir -p /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi
mount /dev/sda3 /mnt
On édite le fichier de configuration pour le choisir le miroir que l’on souhaite et on peut supprimer toutes les autres lignes :
vim /etc/pacman.d/mirrorlist
On peut commencer le système et quelques paquets qui vont être nécessaires à la base du système :
pacstrap /mnt base base-devel zip unzip p7zip vim nano mc alsa-utils syslog-ng linux networkmanager grub os-prober kbd mkinitcpio efibootmgr networkmanager
Génération automatique du fstab :
genfstab -U -p /mnt >> /mnt/etc/fstab
On s’enferme dans le nouveau système grâce au chroot :
arch-chroot /mnt
On créer un fichier de configuration pour avoir par la suite un clavier Français :