- name: ensure serial terminal packages are instaled package: name: - picocom - tmux state: present tags: - install - name: ensure serterm group exists group: name: serterm state: present tags: - group - user - name: ensure serterm user exists user: name: serterm create_home: false home: / group: serterm groups: - dialout state: present tags: - user - name: ensure serial log directory exists file: path: /var/log/serial owner: root group: serterm mode: ug=rwx,o= state: directory tags: - logs - name: ensure serterm configuration directory exists file: path: /etc/serterm owner: root group: root mode: u=rwx,go=rx state: directory tags: - config - name: ensure serterm is configured template: src: tmux.conf.j2 dest: /etc/serterm/tmux.conf owner: root group: root mode: u=rw,go=r tags: - config - name: ensure serterm script directory exists file: path: /usr/local/libexec/serterm owner: root group: root mode: u=rwx,go=rx state: directory tags: - script - name: ensure serterm scripts are installed copy: src: '{{ item }}.sh' dest: /usr/local/libexec/serterm/{{ item }} mode: u=rwx,go=rx owner: root group: root loop: - add-window - connect-serial - remove-window - start-server notify: - restart serial-terminal-server - name: ensure serterm systemd units are installed copy: src: '{{ item }}' dest: /etc/systemd/system/ mode: u=rw,go=r owner: root group: root notify: - reload systemd - restart serial-terminal-server loop: - serial-terminal-server.service - serial-terminal-server-window@.service tags: - systemd - name: ensure serial-terminal-server is enabled service: name: serial-terminal-server enabled: true tags: - service - name: ensure static serial-terminal-server-window units are enabled service: name: serial-terminal-server-window@{{ item }} enabled: true loop: '{{ serterm_static_windows }}' tags: - service - name: flush handlers meta: flush_handlers tags: - always - name: ensure serial-terminal-server is running service: name: serial-terminal-server state: started tags: - service - name: ensure static serial-terminal-server-window units are started service: name: serial-terminal-server-window@{{ item }} state: started loop: '{{ serterm_static_windows }}' tags: - service - name: ensure serterm user ssh keys are authorized template: src: authorized_keys.j2 dest: /etc/serterm/authorized_keys owner: root group: root mode: u=rw,go=r tags: - ssh - authorized_keys - name: ensure sshd is configured for serterm template: src: sshd_config.j2 dest: /etc/ssh/sshd_config.d/80-serterm.conf owner: root group: root mode: u=rw,go=r notify: - reload sshd tags: - ssh - sshd_config