# Script lancé au premier boot

**URL:** <https://www.debian-fr.org/t/script-lance-au-premier-boot/83167>\
**Category:** Support Debian\
**Created:** [Novembre 3, 2020, 1:11 UTC](https://www.debian-fr.org/t/script-lance-au-premier-boot/83167 "2020-11-03T01:11:54Z")\
**Posts on this page:** 8\
**Page:** 2

<div class="post-metadata">

**Author:** ![DarkGagan](https://www.debian-fr.org/user_avatar/www.debian-fr.org/darkgagan/32/4093_2.png) [@DarkGagan](https://www.debian-fr.org/u/DarkGagan)\
**Post date:** [Novembre 4, 2020, 10:14 UTC](https://www.debian-fr.org/t/script-lance-au-premier-boot/83167/21 "2020-11-04T22:14:43Z")

</div>

Ça va p-e paraître un truc fait à la barbare mais un script bash lancé depuis le .profile avec une commande qui supprime l’entrée dans le .profile après ce que tu veux lui faire faire et un rm /chemin/vers/ce/script.sh en dernière commande?

À mon humble avis là t’es sûr qu’il ne se lancera qu’une seule fois.

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Novembre 4, 2020, 10:16 UTC](https://www.debian-fr.org/t/script-lance-au-premier-boot/83167/22 "2020-11-04T22:16:37Z")

</div>

Ben le lancement du script marche bien avec la crontab en fait, avec l’entrée @reboot.  
je ne peux pas jouer avec profile car il fait partie des fichiers fortement surveillé par l’HIDS 😃

---

<div class="post-metadata">

**Author:** ![DarkGagan](https://www.debian-fr.org/user_avatar/www.debian-fr.org/darkgagan/32/4093_2.png) [@DarkGagan](https://www.debian-fr.org/u/DarkGagan)\
**Post date:** [Novembre 4, 2020, 10:23 UTC](https://www.debian-fr.org/t/script-lance-au-premier-boot/83167/23 "2020-11-04T22:23:28Z")

</div>

> [@Zargos](#):
>
> je ne peux pas jouer avec profile car il fait partie des fichiers fortement surveillé par l’HIDS

C’est gênant genre tu vas te faire rouspéter ou c’est une blagounette pour faire peur au collègue? 😃

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Novembre 4, 2020, 10:31 UTC](https://www.debian-fr.org/t/script-lance-au-premier-boot/83167/24 "2020-11-04T22:31:42Z")

</div>

ben déjà c’est gênant genre c est un peu degueu en fait 🙂  
et je ne suis pas sur que l’enforce avec apparmor entre autre ne va pas bloquer une partie des commandes, dont justement ce qui touche à systemd.

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Novembre 5, 2020, 9:49 UTC](https://www.debian-fr.org/t/script-lance-au-premier-boot/83167/25 "2020-11-05T09:49:58Z")

</div>

Du coup la méthode pull avec Ansible est à mon humble avis la méthode la moins invasive et la plus safe, ta machine une fois up va aller chercher son playbook et réaliser ces opérations sur un répertoire Git …

C’est ainsi que j’effectue des reconfigurations du type hostname, ip, etc … lors d’un provisionnement de machine si j’ai pas la possibilité d’installer (ou la volonté) d’installer Cloud-init.

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Novembre 5, 2020, 2:21 UTC](https://www.debian-fr.org/t/script-lance-au-premier-boot/83167/26 "2020-11-05T14:21:28Z")

</div>

Avec Ansible, il me faut une plate-forme dédiée et supplémentaire.

Avec le preseed, j’ajoute tous les packages dont j’ai besoin (sauf le backport de systemd).  
ensuite avec le late\_command, je réalise toutes les commandes d’installations des fichiers de conf pré-définis, les modifications de droits, les banners, les modifications de fstab, grub, auditd, sshd, pamd, rsyslog, webmin, shorewall, shorewall6, isc-dhcp-server, bind9.

dans le script de reboot c’est juste les modifications liés à systemd pour shorewall/shorewall6/shorewall-init, desactiver rsync, puis effacer les répertoires de travail des fichiers de conf et de scripts.

pour l’exécution du script de reboot, la difficulté était de configurer crontab en late\_command dans le preseed. Il y a en effet des requis pour l’écriture du fichier, un simple echo «&nbsp;text&nbsp;» \> crontab ou /var/spool/cron/crontab/root ne suffit pas.  
j’ai donc préparer un fichier complet et installé avec un:  
`cat crontab | crontab -u root -` qui contient le fameux @reboot /root/scripts/reboot\_exec.sh  
et pour supprimer, dans le script de rebot, un simple crontab -r suffit.

Apparemment, le fichier crontab doit contenir les commentaires de base (ou peut être une ligne vide en fin de fichier), sinon ça ne marche pas.

maintenant, ne me reste plus qu’à configurer le vlan orange, les dhclient ipv4 et v6 et l’igmp.

---

<div class="post-metadata">

**Author:** ![yohanth](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/y/a9adbd/32.png) [@yohanth](https://www.debian-fr.org/u/yohanth)\
**Post date:** [Mai 5, 2021, 1:26 UTC](https://www.debian-fr.org/t/script-lance-au-premier-boot/83167/27 "2021-05-05T13:26:24Z")

</div>

Cette discussion m’a beaucoup aidé.  
Pour compléter voici la fin de preseed pour ubuntu 20.04 desktop avec ubiquity pour lancer un script.sh au premier boot.

```
ubiquity ubiquity/success_command string \
    cp /cdrom/script.sh /target/root/script.sh ; \
    chmod +x /target/root/script.sh ; \
    echo "@reboot /root/script.sh" > /target/var/spool/cron/crontabs/root ; \
    chmod 600 /target/var/spool/cron/crontabs/root ; \
    chown root:crontab /target/var/spool/cron/crontabs/root ; \
    in-target apt update -y ; \
    in-target apt upgrade -y ; \
    --ubiquity-success-command

```

De mes nombreuses installations j’ai remarqué qu’un `echo "line1 \n line2"` avec ou sans option e dans le preseed resulte d’un ignore de `ubiquity/success_command`. Sinon pas eu besoin d’y ajouter les commentaires de base, le script s’execute.

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Mai 6, 2021, 2:04 UTC](https://www.debian-fr.org/t/script-lance-au-premier-boot/83167/28 "2021-05-06T14:04:46Z")

</div>

> [@yohanth](#):
>
> ```auto
> ubiquity ubiquity/success_command string \
> cp /cdrom/script.sh /target/root/script.sh ;
> 
> ```

Pas besoin normallement de ubiquity, tu peux faire l’opération avec `d-i preseed/late_command string ....`

[Page précédente](https://www.debian-fr.org/t/script-lance-au-premier-boot/83167.md?page=1)
