From 1d967b6b450db2c0ec872e8c8ca2833d3e5905c7 Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Tue, 13 Sep 2016 16:21:36 +0000 Subject: [PATCH] first cut at a serial console role for rhel7/fedora --- playbooks/manual/sign-vault.yml | 1 + .../files/serial-getty@.service | 35 +++++++++++++++++++ roles/serial-console/tasks/main.yml | 31 ++++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 roles/serial-console/files/serial-getty@.service create mode 100644 roles/serial-console/tasks/main.yml diff --git a/playbooks/manual/sign-vault.yml b/playbooks/manual/sign-vault.yml index 1f76b51f26..395d7f8dae 100644 --- a/playbooks/manual/sign-vault.yml +++ b/playbooks/manual/sign-vault.yml @@ -36,6 +36,7 @@ - base - rkhunter - sigul/server + - serial-console tasks: - include: "{{ tasks }}/motd.yml" diff --git a/roles/serial-console/files/serial-getty@.service b/roles/serial-console/files/serial-getty@.service new file mode 100644 index 0000000000..6539556509 --- /dev/null +++ b/roles/serial-console/files/serial-getty@.service @@ -0,0 +1,35 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Serial Getty on %I +Documentation=man:agetty(8) man:systemd-getty-generator(8) +Documentation=http://0pointer.de/blog/projects/serial-console.html +BindsTo=dev-%i.device +After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service +After=rc-local.service + +# If additional gettys are spawned during boot then we should make +# sure that this is synchronized before getty.target, even though +# getty.target didn't actually pull it in. +Before=getty.target +IgnoreOnIsolate=yes + +[Service] +ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM +Type=idle +Restart=always +UtmpIdentifier=%I +TTYPath=/dev/%I +TTYReset=yes +TTYVHangup=yes +KillMode=process +IgnoreSIGPIPE=no +SendSIGHUP=yes + +[Install] +WantedBy=getty.target diff --git a/roles/serial-console/tasks/main.yml b/roles/serial-console/tasks/main.yml new file mode 100644 index 0000000000..c756ba159b --- /dev/null +++ b/roles/serial-console/tasks/main.yml @@ -0,0 +1,31 @@ +# +# This role sets up serial console on ttyS0 +# +- name: check for grub serial setup + command: cat /etc/grub2.cfg + register: serial + always_run: yes + changed_when: '1 != 1' + tags: + - serial-console + +- name: set grub to use serial console + command: /sbin/grubby --update-kernel=ALL --args="console=tty0 console=ttyS0,115200" + when: serial is defined and serial.stdout.find("console=tty0 console=ttyS0,115200") == -1 + tags: + - serial-console + +- name: setup systemd links for getty (S0) + copy: src=serial-getty@.service dest=/etc/systemd/system/serial-getty@ttyS0.service + tags: + - serial-console + +- name: link template in + file: src=/etc/systemd/system/getty.target.wants/serial-getty@ttyS0 dest=/etc/systemd/system/serial-getty@ttyS1.service state=link + tags: + - serial-console + +- name: start and enable + service: name=serial-getty@ttyS0 enabled=yes state=started + tags: + - serial-console