Eine einfache CoreOS-Konfiguration für Einsteiger mit Passwort-Login
Im Gegensatz zu anderen Linux-basierten Systemen erfordert CoreOS eine recht steile Lernkurve, um es ordnungsgemäß zu installieren – beispielsweise muss die richtige Ignition-Datei erstellt werden. Dies ist ein großes Hindernis, das es zu überwinden gilt, insbesondere für Erstbenutzer.
Dieser Beitrag versucht, die steile Lernkurve zu mildern, indem eine grundlegende Konfiguration bereitgestellt wird, die für die meisten praktischen (und insbesondere kleinmaßstäblichen) Anwendungsfälle geeignet ist und einen guten Ausgangspunkt für benutzerdefinierte Konfigurationen bietet.
Einfache Installation
Zuerst die VM von der CoreOS-Live-CD booten. Es wird angenommen, dass ein DHCP-Netzwerk mit eth0 verbunden ist. Es erscheint sofort eine Shell.
Die VM wird automatisch eine IP-Adresse über DHCP beziehen.
Für die Installation kann die von TechOverflow gehostete Ignition-Datei verwendet werden. Je nach Hardware/Hypervisor muss die richtige Festplatte anstelle von /dev/xvda verwendet werden. Im Zweifel lsblk verwenden, um den richtigen Festplattennamen zu finden.
Nun den Installationsbefehl ausführen:
sudo coreos-installer install /dev/xvda --copy-network --ignition-url https://techoverflow.net/coreos.ignNach Abschluss der Installation neu starten mit
rebootNach dem Neustart der Maschine können die Standard-Anmeldedaten verwendet werden:
Benutzername: admin
Passwort: coreos
Der Hostname ist CoreOS.
Das Passwort muss nach der Installation unbedingt geändert werden! Wenn ein anderer Benutzer erstellt wird, beachten, dass das Passwort des Admin-Benutzers weiterhin geändert werden muss mit
sudo passwd adminEigene Konfigurationsdatei erstellen
Dies ist das Ignition-YAML, das verwendet wurde, um die korrekte Konfigurationsdatei zu erstellen. Den Online-Transpiler unter https://fcct.techoverflow.net verwenden, um das YAML in die JSON-Datei zu kompilieren. Um einen neuen Passwort-Hash zu erstellen, den Docker-basierten mkpasswd-Ansatz von TechOverflow verwenden.
variant: fcos
version: 1.0.0
passwd:
users:
- name: admin
groups:
- "sudo"
- "docker"
password_hash: $y$j9T$n6h8P2ik8tfoNUFBBoly00$7bnrMF8oFrB25Fc3NqigqEH/MI5YXIJwtCG/iEsns.2
systemd:
units:
- name: docker.service
enabled: true
- name: containerd.service
enabled: true
- name: [email protected]
dropins:
- name: autologin-core.conf
contents: |
[Service]
# Override Execstart in main unit
ExecStart=
# Add new Execstart with `-` prefix to ignore failure
ExecStart=-/usr/sbin/agetty --autologin admin --noclear %I $TERM
TTYVTDisallocate=no
storage:
files:
- path: /etc/hostname
mode: 0644
contents:
inline: |
CoreOS
- path: /etc/profile.d/systemd-pager.sh
mode: 0644
contents:
inline: |
# Tell systemd to not use a pager when printing information
export SYSTEMD_PAGER=cat
- path: /etc/sysctl.d/20-silence-audit.conf
mode: 0644
contents:
inline: |
# Raise console message logging level from DEBUG (7) to WARNING (4)
# to hide audit messages from the interactive console
kernel.printk=4
- path: /etc/ssh/sshd_config.d/20-enable-passwords.conf
mode: 0644
contents:
inline: |
# Enable SSH password login
PasswordAuthentication yeswhich results in the following transpiled JSON:
{
"ignition": {
"version": "3.0.0"
},
"passwd": {
"users": [
{
"groups": [
"sudo",
"docker"
],
"name": "admin",
"passwordHash": "$y$j9T$n6h8P2ik8tfoNUFBBoly00$7bnrMF8oFrB25Fc3NqigqEH/MI5YXIJwtCG/iEsns.2"
}
]
},
"storage": {
"files": [
{
"contents": {
"source": "data:,CoreOS%0A"
},
"mode": 420,
"path": "/etc/hostname"
},
{
"contents": {
"source": "data:,%23%20Tell%20systemd%20to%20not%20use%20a%20pager%20when%20printing%20information%0Aexport%20SYSTEMD_PAGER%3Dcat%0A"
},
"mode": 420,
"path": "/etc/profile.d/systemd-pager.sh"
},
{
"contents": {
"source": "data:,%23%20Raise%20console%20message%20logging%20level%20from%20DEBUG%20(7)%20to%20WARNING%20(4)%0A%23%20to%20hide%20audit%20messages%20from%20the%20interactive%20console%0Akernel.printk%3D4%0A"
},
"mode": 420,
"path": "/etc/sysctl.d/20-silence-audit.conf"
},
{
"contents": {
"source": "data:,%23%20Enable%20SSH%20password%20login%0APasswordAuthentication%20yes%0A"
},
"mode": 420,
"path": "/etc/ssh/sshd_config.d/20-enable-passwords.conf"
}
]
},
"systemd": {
"units": [
{
"enabled": true,
"name": "docker.service"
},
{
"enabled": true,
"name": "containerd.service"
},
{
"dropins": [
{
"contents": "[Service]\\n# Override Execstart in main unit\\nExecStart=\\n# Add new Execstart with `-` prefix to ignore failure\\nExecStart=-/usr/sbin/agetty --autologin admin --noclear %I $TERM\\nTTYVTDisallocate=no\\n",
"name": "autologin-core.conf"
}
],
"name": "[email protected]"
}
]
}
}