Adding znc stuff

This commit is contained in:
Ubergeek 2019-02-04 13:58:54 +00:00
parent fbb0f986c4
commit 1e02330b6c
6 changed files with 147 additions and 0 deletions

View File

@ -0,0 +1,4 @@
This is my gopher page.
There are many like it, but this one is mine.
1Thunix gopher.thunix.cf

View File

@ -0,0 +1,43 @@
#!/bin/bash
# ZNC account creation
CONF="/var/lib/znc/.znc/configs/znc.conf"
PID=$(pgrep -u znc znc)
# $username and $password are retrieved from create-account script
if [[ -z $1 || -z $2 ]]
then
echo -e "Usage: $(basename $0) [username] [password]"
exit
fi
# search if $username has been added previously
if grep -iq $1 $CONF
then
echo -e "User: '$1' already exists"
exit
fi
username=$1
password=$2
kill -s USR1 $PID # Rewrite znc.conf
sleep 1
# set username and password
sed s/newuser/$username/g znc_account.newconf >> $CONF
expect << EOF | grep -E 'Hash|Salt' | tr -d \\r >> $CONF
spawn znc --makepass
expect "*Enter password: "
send "$password\r"
expect "*Confirm password: "
send "$password\r"
expect eof
EOF
echo " </Pass>" >> $CONF
echo "</User>" >> $CONF
sleep 1
kill -s HUP $PID # Reload znc.conf
sleep 1
kill -s USR1 $PID # Rewrite znc.conf

View File

@ -0,0 +1,25 @@
<User newuser>
Admin = false
AltNick = newuser|znc
AppendTimestamp = false
AutoClearChanBuffer = true
AutoClearQueryBuffer = true
Buffer = 50
DenyLoadMod = false
DenySetBindHost = false
Ident = newuser
JoinTries = 10
LoadModule = chansaver
MaxJoins = 0
MaxNetworks = 2
MaxQueryBuffers = 50
MultiClients = true
Nick = newuser
PrependTimestamp = true
QuitMsg = bouncer provider phoenix.thunix.cf
RealName = Got Thunix ?
StatusPrefix = *
TimestampFormat = [%H:%M:%S]
<Pass password>
Method = SHA256

View File

@ -5,3 +5,4 @@
- include: users.yml
- include: apache2-mods.yml
- include: ufw.yml
- include: znc.yml

View File

@ -0,0 +1,15 @@
---
- name: Setting up z00t
user:
name: z00t
groups: tilde
state: present
skeleton: /etc/skel
shell: /bin/bash
system: no
createhome: yes
home: /home/z00t
- authorized_key:
user: z00t
state: present
key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDVLpxuui5LZYqnmPQU2jFesWjGGKx0rmJaU6TkqBMBNa3rVXN7AWfCM3+Wg5x/kLp75uzFjRUzkODCRo+YW8dRMOYPFxQsVT2NB102iX71hNS4NuP4GMgNxHzXk5WWekhYMCfhlMaoUYflVt5lqdUXvxSPnxUbkrh29DKK1r5bwQ1AVZy7Ib/wZZ4Z03UXq8lMAQqznKFpg0gn5rY/x1VFP9MYWu1GfMdDKsAIvsYA1/o2pHMPanDunkZlS6HdI9t08/qhkMhmH+HJrXyQa3KxkmT/5H/d89VKCjZRcCu0o+p7w9J2HGn9FTZKwoFv0nV+/i6Zfov6ptf4Bgm8A3NZ"

59
roles/shell/tasks/znc.yml Normal file
View File

@ -0,0 +1,59 @@
# Install our baseline packages for all machines, irrespective of what role they might have
---
- name: Create home dirs for znc
file:
path: /var/lib/znc/.znc
state: directory
owner: znc
group: root
mode: 770
recurse: yes
- name: Create znc run dir
file:
path: /var/run/znc
state: directory
owner: znc
group: root
mode: 770
- name: Install crontab target
copy:
dest: /etc/systemd/system/znc.service
content: |
[Install]
WantedBy=multi-user.target
[Unit]
Description=Simulates cron, limited to /etc/cron.*
Requires=crontab@hourly.timer
Requires=crontab@daily.timer
Requires=crontab@weekly.timer
Requires=crontab@monthly.timer
[Unit]
Description=ZNC, an advanced IRC bouncer
After=network-online.target
[Service]
ExecStart=/usr/bin/znc -f --datadir=/var/lib/znc/.znc
ExecReload=/bin/kill -HUP $MAINPID
User=znc
[Install]
WantedBy=multi-user.target
- name: Install znc_newaccount
copy:
src: ../files/var/lib/znc/znc_account.newconf
dest: /var/lib/znc/znc_account.newconf
owner: znc
group: root
mode: 660
- name: Install znc user script
copy:
src: ../files/var/lib/znc/create-znc_account.sh
dest: /var/lib/znc/create-znc_account.sh
owner: znc
group: root
mode: 770