Když si stáhnete a nakonfigurujete Jenkins pomocí dockeru, musíte ke správě procesu použít ruční příkaz. Stává se to docela nebezpečné a komplikované. Budeme to tedy spravovat pomocí systemd. Ve skutečnosti je to správce systému a služeb pro operační systémy Linux. Obsahuje spouštění, povolení, restartování a zastavování démonů, protokolování atd. na vyžádání.
V tomto článku se chystám stáhnout balíček Jenkins z úložiště docker hub a spravovat jej pomocí správce systemd. Použil jsem Ubuntu Linux, ale můžete to udělat v centos, Debian, Redhat atd., které podporují systemd.
Předpoklady
- Nainstalována nejnovější verze dockeru
- Připojení k internetu pro stažení obrázku Jenkins
Konfigurace
Ke spuštění procesu potřebujeme uživatele. Vytvoříme tedy systémovou skupinu, přidáme do skupiny systémového uživatele. Protože se nemusíte přihlašovat, neposkytujeme žádný přihlašovací shell. Zde jsem uvedl název ‚devops‘, můžete zadat podle svého výběru.
$ sudo groupadd --system devops
$ sudo useradd -s /sbin/nologin --system -g devops devops
Během instalace dockeru byl ve výchozím nastavení přidán uživatelský docker. Chcete-li tedy spustit náš proces uvnitř dockeru, přidejte uživatele „devops“ a vašeho aktuálního přihlášeného uživatele do skupiny dockerů.
$ sudo usermod -aG docker devops
$ sudo usermod -aG docker $USER
Potřebujeme adresář pro mapování objemu kontejneru na hostitele. Vytvořme tedy adresář a dáme aktuálnímu uživateli vlastnictví v adresáři.
$ sudo mkdir -p /data/jenkins
$ chown -R $USER:$USER /data/jenkins
Nyní můžete ověřit uživatele „devops“ pomocí následujícího příkazu. Váš výstup musí být podobný následujícímu.
$ id devops
Nyní je čas vytvořit službu. Soubory služeb jsou uloženy v /etc/systemd/system/ Vytvořte tedy soubor s příponou .service, jak je ukázáno níže.
$ vim /etc/systemd/system/docker-jenkins.service
Přidejte do souboru následující obsah. Následující konfigurace vytvoří název služby docker-jenkins. Jednoduše stáhne nejnovější verzi obrazu jenkins z docker hubu a spustí kontejner. Bude také mapovat porty 8080 a 50000 na hostitelském serveru, které jsou potřebné pro přístup ke službě jenkins. Jak je definováno v části Jednotka níže, vyžaduje úspěšné provedení docker.service. Pokud máte různé uživatele, přípojné body se odpovídajícím způsobem změní.
[Unit] Description=My Jenkins Server Documentation=https://jenkins.io/doc/ After=docker.service Requires=docker.service [Service] Type=simple User=devops Group=devops TimeoutStartSec=0 Restart=on-failure RestartSec=30s ExecStartPre=-/usr/bin/docker kill jenkins-server ExecStartPre=-/usr/bin/docker rm jenkins-server ExecStartPre=/usr/bin/docker pull jenkins/jenkins ExecStart=/usr/bin/docker run \ --name jenkins-server \ --publish 8080:8080 \ --publish 50000:50000 \ --volume /data/jenkins:/var/jenkins_home \ jenkins/jenkins SyslogIdentifier=jenkin ExecStop=/usr/bin/docker stop jenkins-server [Install] WantedBy=multi-user.target
Znovu načtěte soubor služby v démonu systemd pomocí následujícího příkazu.
$ sudo systemctl daemon-reload
Spusťte službu docker pomocí příkazu níže.
$ sudo systemctl start docker-jenkins
Systemd také poskytuje výchozí službu protokolování v syslog. Záznam můžete vidět na následujícím umístění.
$ sudo tail -f /var/log/syslog
Nyní můžete službu spustit po restartování serveru pomocí funkce „povolení“ správce systému.
$ sudo systemctl enable docker-jenkins
Zkontrolujte také restartováním služby.
$ sudo systemctl restart docker-jenkins
Jenkins nastavení
Chcete-li nastavit jenkins, nejprve navštivte http://yourserverip:8080 Poté musíte zadat počáteční heslo správce, které se nastavuje v následující cestě. Zkopírujte výstup a vložte jej do „Heslo správce“. Poté klikněte na pokračovat.
$ cat /data/jenkins/secrets/initialAdminPassword
Můžete nainstalovat požadovaný plugin a pokračovat.
Závěr
V tomto článku jste se naučili nainstalovat nejnovější verzi Jenkins pomocí dockeru a nakonfigurovat službu tak, aby ji používala. Správa Jenkinse pomocí systemd usnadňuje práci. Děkuji za přečtení.