Add anope role
This commit is contained in:
parent
0b934c3655
commit
c0dfcce96d
7 changed files with 379 additions and 0 deletions
roles/anope
defaults
handlers
tasks
templates/etc
132
roles/anope/defaults/main.yml
Normal file
132
roles/anope/defaults/main.yml
Normal file
|
@ -0,0 +1,132 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
anope_services_botserv_enabled: false
|
||||||
|
anope_services_chanserv_enabled: true
|
||||||
|
anope_services_global_enabled: true
|
||||||
|
anope_services_hostserv_enabled: false
|
||||||
|
anope_services_memoserv_enabled: false
|
||||||
|
anope_services_nickserv_enabled: true
|
||||||
|
anope_services_operserv_enabled: true
|
||||||
|
|
||||||
|
anope_services_host: services.localhost.localdomain
|
||||||
|
|
||||||
|
anope_uplink_host: localhost
|
||||||
|
anope_uplink_ipv6: true
|
||||||
|
anope_uplink_ssl: false
|
||||||
|
anope_uplink_port: 7000
|
||||||
|
|
||||||
|
anope_serverinfo_name: services.localhost.localdomain
|
||||||
|
anope_serverinfo_description: Services for IRC Networks
|
||||||
|
anope_serverinfo_pid: /var/run/anope/anope.pid
|
||||||
|
anope_serverinfo_motd: /etc/anope/services.motd
|
||||||
|
|
||||||
|
anope_protocol_module_name: inspircd3
|
||||||
|
anope_protocol_module_use_server_side_mlock: true
|
||||||
|
anope_protocol_module_use_server_side_topiclock: true
|
||||||
|
|
||||||
|
anope_networkinfo_networkname: LocalNet
|
||||||
|
anope_networkinfo_nicklen: 31
|
||||||
|
anope_networkinfo_userlen: 10
|
||||||
|
anope_networkinfo_hostlen: 64
|
||||||
|
anope_networkinfo_chanlen: 32
|
||||||
|
anope_networkinfo_modelistsize: 100
|
||||||
|
anope_networkinfo_vhost_chars: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-"
|
||||||
|
anope_networkinfo_allow_undotted_vhosts: false
|
||||||
|
anope_networkinfo_disallow_start_or_end: ".-"
|
||||||
|
|
||||||
|
anope_options_casemap: ascii
|
||||||
|
anope_options_strictpasswords: true
|
||||||
|
anope_options_badpasslimit: 5
|
||||||
|
anope_options_badpasstimeout: 1h
|
||||||
|
anope_options_updatetimeout: 5m
|
||||||
|
anope_options_expiretimeout: 30m
|
||||||
|
anope_options_readtimeout: 5s
|
||||||
|
anope_options_warningtimeout: 4h
|
||||||
|
anope_options_timeoutcheck: 3s
|
||||||
|
anope_options_retrywait: 60s
|
||||||
|
anope_options_hideprivilegedcommands: yes
|
||||||
|
anope_options_hideregisteredcommands: yes
|
||||||
|
anope_options_languages:
|
||||||
|
- ca_ES.UTF-8
|
||||||
|
- de_DE.UTF-8
|
||||||
|
- el_GR.UTF-8
|
||||||
|
- en_US.UTF-8
|
||||||
|
- es_ES.UTF-8
|
||||||
|
- fr_FR.UTF-8
|
||||||
|
- hu_HU.UTF-8
|
||||||
|
- it_IT.UTF-8
|
||||||
|
- nl_NL.UTF-8
|
||||||
|
- pl_PL.UTF-8
|
||||||
|
- pt_PT.UTF-8
|
||||||
|
- ru_RU.UTF-8
|
||||||
|
- tr_TR.UTF-8
|
||||||
|
anope_options_defaultlanguage: en_US.UTF-8
|
||||||
|
|
||||||
|
anope_log:
|
||||||
|
- targets:
|
||||||
|
- services.log
|
||||||
|
sources: []
|
||||||
|
bot: Global
|
||||||
|
logage: 7
|
||||||
|
admin:
|
||||||
|
- "*"
|
||||||
|
override:
|
||||||
|
- chanserv/*
|
||||||
|
- nickserv/*
|
||||||
|
- memoserv/set
|
||||||
|
- ~botserv/set
|
||||||
|
- botserv/*
|
||||||
|
commands:
|
||||||
|
- ~operserv/*
|
||||||
|
- "*"
|
||||||
|
servers:
|
||||||
|
- "*"
|
||||||
|
users:
|
||||||
|
- connect
|
||||||
|
- disconnect
|
||||||
|
- nick
|
||||||
|
other:
|
||||||
|
- "*"
|
||||||
|
rawio: no
|
||||||
|
debug: no
|
||||||
|
- targets:
|
||||||
|
- globops
|
||||||
|
admin:
|
||||||
|
- "global/*"
|
||||||
|
- "operserv/chankill"
|
||||||
|
- "operserv/mode"
|
||||||
|
- "operserv/kick"
|
||||||
|
- "operserv/akill"
|
||||||
|
- "operserv/s*line"
|
||||||
|
- "operserv/noop"
|
||||||
|
- "operserv/jupe"
|
||||||
|
- "operserv/oline"
|
||||||
|
- "operserv/set"
|
||||||
|
- "operserv/svsnick"
|
||||||
|
- "operserv/svsjoin"
|
||||||
|
- "operserv/svspart"
|
||||||
|
- "nickserv/getpass"
|
||||||
|
- "*/drop"
|
||||||
|
servers:
|
||||||
|
- squit
|
||||||
|
users:
|
||||||
|
- oper
|
||||||
|
other:
|
||||||
|
- "expire/*"
|
||||||
|
- "bados"
|
||||||
|
- "akill/*"
|
||||||
|
|
||||||
|
anope_opertypes:
|
||||||
|
NetAdmin:
|
||||||
|
commands: ["*"]
|
||||||
|
privs: ["*"]
|
||||||
|
|
||||||
|
anope_opers: {}
|
||||||
|
|
||||||
|
anope_database_flatfile_keepbackups: 3
|
||||||
|
anope_database_flatfile_nobackupok: no
|
||||||
|
anope_database_flatfile_fork: no
|
||||||
|
|
||||||
|
anope_password_hash: bcrypt
|
||||||
|
|
||||||
|
anope_additional_config: ""
|
11
roles/anope/handlers/main.yml
Normal file
11
roles/anope/handlers/main.yml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: restart anope
|
||||||
|
service:
|
||||||
|
name: anope
|
||||||
|
state: restarted
|
||||||
|
|
||||||
|
- name: reload anope
|
||||||
|
service:
|
||||||
|
name: anope
|
||||||
|
state: reloaded
|
25
roles/anope/tasks/config.yml
Normal file
25
roles/anope/tasks/config.yml
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: render /etc/anope/services.conf
|
||||||
|
template:
|
||||||
|
src: etc/anope/services.conf.j2
|
||||||
|
dest: /etc/anope/services.conf
|
||||||
|
owner: root
|
||||||
|
group: irc
|
||||||
|
mode: 0640
|
||||||
|
notify: restart anope
|
||||||
|
|
||||||
|
- name: render /etc/default/anope
|
||||||
|
template:
|
||||||
|
src: etc/default/anope.j2
|
||||||
|
dest: /etc/default/anope
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
notify: restart anope
|
||||||
|
|
||||||
|
- name: start and enable anope
|
||||||
|
service:
|
||||||
|
name: anope
|
||||||
|
state: started
|
||||||
|
enabled: yes
|
7
roles/anope/tasks/install.yml
Normal file
7
roles/anope/tasks/install.yml
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: install anope
|
||||||
|
apt:
|
||||||
|
name: anope
|
||||||
|
# anope recommends default-mta, which resolves to exim
|
||||||
|
install_recommends : no
|
11
roles/anope/tasks/main.yml
Normal file
11
roles/anope/tasks/main.yml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- import_tasks: install.yml
|
||||||
|
tags:
|
||||||
|
- "role::anope"
|
||||||
|
- "role::anope:install"
|
||||||
|
|
||||||
|
- import_tasks: config.yml
|
||||||
|
tags:
|
||||||
|
- "role::anope"
|
||||||
|
- "role::anope:config"
|
191
roles/anope/templates/etc/anope/services.conf.j2
Normal file
191
roles/anope/templates/etc/anope/services.conf.j2
Normal file
|
@ -0,0 +1,191 @@
|
||||||
|
{{ ansible_managed | comment }}
|
||||||
|
|
||||||
|
define
|
||||||
|
{
|
||||||
|
name = "services.host"
|
||||||
|
value = "{{ anope_services_host }}"
|
||||||
|
}
|
||||||
|
|
||||||
|
uplink
|
||||||
|
{
|
||||||
|
host = "{{ anope_uplink_host }}"
|
||||||
|
ipv6 = {{ anope_uplink_ipv6 | ternary('yes', 'no') }}
|
||||||
|
ssl = {{ anope_uplink_ssl | ternary('yes', 'no') }}
|
||||||
|
port = {{ anope_uplink_port }}
|
||||||
|
password = "{{ anope_uplink_password }}"
|
||||||
|
}
|
||||||
|
|
||||||
|
serverinfo
|
||||||
|
{
|
||||||
|
name = "{{ anope_serverinfo_name }}"
|
||||||
|
description = "{{ anope_serverinfo_description }}"
|
||||||
|
{% if anope_serverinfo_localhost is defined %}localhost = "{{ anope_serverinfo_localhost }}"{% endif %}
|
||||||
|
{% if anope_serverinfo_id is defined %}id = "{{ anope_serverinfo_id }}"{% endif %}
|
||||||
|
pid = "{{ anope_serverinfo_pid }}"
|
||||||
|
motd = "{{ anope_serverinfo_motd }}"
|
||||||
|
}
|
||||||
|
|
||||||
|
module
|
||||||
|
{
|
||||||
|
name = "{{ anope_protocol_module_name }}"
|
||||||
|
use_server_side_mlock = {{ anope_protocol_module_use_server_side_mlock | ternary('yes', 'no') }}
|
||||||
|
use_server_side_topiclock = {{ anope_protocol_module_use_server_side_topiclock | ternary('yes', 'no') }}
|
||||||
|
}
|
||||||
|
|
||||||
|
networkinfo
|
||||||
|
{
|
||||||
|
networkname = "{{ anope_networkinfo_networkname }}"
|
||||||
|
nicklen = {{ anope_networkinfo_nicklen }}
|
||||||
|
userlen = {{ anope_networkinfo_userlen }}
|
||||||
|
hostlen = {{ anope_networkinfo_hostlen }}
|
||||||
|
chanlen = {{ anope_networkinfo_chanlen }}
|
||||||
|
modelistsize = {{ anope_networkinfo_modelistsize }}
|
||||||
|
{% if anope_networkinfo_nick_chars is defined %}nick_chars = "{{ anope_networkinfo_nick_chars }}"{% endif %}
|
||||||
|
vhost_chars = "{{ anope_networkinfo_vhost_chars }}"
|
||||||
|
allow_undotted_vhosts = {{ anope_networkinfo_allow_undotted_vhosts | ternary('yes', 'no') }}
|
||||||
|
disallow_start_or_end = "{{ anope_networkinfo_disallow_start_or_end }}"
|
||||||
|
}
|
||||||
|
|
||||||
|
options
|
||||||
|
{
|
||||||
|
{% if anope_options_user is defined %}user = "{{ anope_options_user }}"{% endif %}
|
||||||
|
{% if anope_options_group is defined %}group = "{{ anope_options_group }}"{% endif %}
|
||||||
|
casemap = "{{ anope_options_casemap }}"
|
||||||
|
seed = {{ anope_options_seed }}
|
||||||
|
strictpasswords = {{ anope_options_strictpasswords | ternary('yes', 'no' ) }}
|
||||||
|
badpasslimit = {{ anope_options_badpasslimit }}
|
||||||
|
badpasstimeout = {{ anope_options_badpasstimeout }}
|
||||||
|
updatetimeout = {{ anope_options_updatetimeout }}
|
||||||
|
expiretimeout = {{ anope_options_expiretimeout }}
|
||||||
|
readtimeout = {{ anope_options_readtimeout }}
|
||||||
|
warningtimeout = {{ anope_options_warningtimeout }}
|
||||||
|
timeoutcheck = {{ anope_options_timeoutcheck }}
|
||||||
|
{% if anope_options_useprivmsg is defined %}useprivmsg = {{ anope_options_useprivmsg | ternary('yes', 'no') }}{% endif %}
|
||||||
|
{% if anope_options_usestrictprivmsg is defined %}usestrictprivmsg = {{ anope_options_usestrictprivmsg | ternary('yes', 'no') }}{% endif %}
|
||||||
|
{% if anope_options_hidestatso is defined %}hidestatso = {{ anope_options_hidestatso | ternary('yes', 'no') }}{% endif %}
|
||||||
|
{% if anope_options_ulineservers is defined %}ulineservers = "{{ anope_options_ulineservers | join(' ') }}"{% endif %}
|
||||||
|
retrywait = {{ anope_options_retrywait }}
|
||||||
|
hideprivilegedcommands = {{ anope_options_hideprivilegedcommands | ternary('yes', 'no') }}
|
||||||
|
hideregisteredcommands = {{ anope_options_hideregisteredcommands | ternary('yes', 'no') }}
|
||||||
|
{% if anope_options_regexengine is defined %}regexengine = "regex/pcre"{% endif %}
|
||||||
|
languages = "{{ anope_options_languages | join(' ') }}"
|
||||||
|
anope_options_defaultlanguage = "{{ anope_options_defaultlanguage }}"
|
||||||
|
}
|
||||||
|
|
||||||
|
{% for log in anope_log %}
|
||||||
|
log
|
||||||
|
{
|
||||||
|
target = "{{ log.targets | join(' ') }}"
|
||||||
|
{% if 'source' in log %}source = "{{ log.source }}"{% endif %}
|
||||||
|
{% if 'bot' in log %}bot = "{{ log.bot }}"{% endif %}
|
||||||
|
{% if 'logage' in log %}logage = {{ log.logage }}{% endif %}
|
||||||
|
{% if 'admin' in log %}admin = "{{ log.admin | join(' ') }}"{% endif %}
|
||||||
|
{% if 'override' in log %}override = "{{ log.override | join(' ') }}"{% endif %}
|
||||||
|
{% if 'commands' in log %}commands = "{{ log.commands | join(' ') }}"{% endif %}
|
||||||
|
{% if 'servers' in log %}servers = "{{ log.servers | join(' ') }}"{% endif %}
|
||||||
|
{% if 'channels' in log %}channels = "{{ log.channels | join(' ') }}"{% endif %}
|
||||||
|
{% if 'users' in log %}users = "{{ log.users | join(' ') }}"{% endif %}
|
||||||
|
{% if 'other' in log %}other = "{{ log.other | join(' ') }}"{% endif %}
|
||||||
|
{% if 'rawio' in log %}rawio = {{ log.rawio | ternary('yes', 'no') }}{% endif %}
|
||||||
|
{% if 'debug' in log %}debug = {{ log.debug | ternary('yes', 'no') }}{% endif %}
|
||||||
|
}
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% for name, opertype in anope_opertypes.items() %}
|
||||||
|
opertype
|
||||||
|
{
|
||||||
|
name = "{{ name }}"
|
||||||
|
commands = "{{ log.commands | join(' ') }}"
|
||||||
|
privs = "{{ log.privs | join(' ') }}"
|
||||||
|
{% if 'inherits' in opertype %}inherits = "{{ log.inherits | join(', ') }}"{% endif %}
|
||||||
|
{% if 'modes' in opertype %}modes = "{{ log.modes }}"{% endif %}
|
||||||
|
}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% for name, op in anope_opers.items() %}
|
||||||
|
oper
|
||||||
|
{
|
||||||
|
name = "{{ name }}"
|
||||||
|
type = "{{ op.type }}"
|
||||||
|
{% if 'require_oper' in op%}require_oper = {{ op.require_oper | ternary('yes', 'no') }}{% endif %}
|
||||||
|
{% if 'password' in op%}password = "{{ op.password }}"{% endif %}
|
||||||
|
{% if 'certfp' in op%}certfp = "{{ op.certfp }}"{% endif %}
|
||||||
|
{% if 'host' in op%}host = "{{ op.host }}"{% endif %}
|
||||||
|
{% if 'vhost' in op%}vhost = "{{ op.vhost }}"{% endif %}
|
||||||
|
}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
module
|
||||||
|
{
|
||||||
|
name = "db_flatfile"
|
||||||
|
database = "{{ anope_database_flatfile_filename }}"
|
||||||
|
keepbackups = {{ anope_database_flatfile_keepbackups }}
|
||||||
|
nobackupok = {{ anope_database_flatfile_nobackupok | ternary('yes', 'no') }}
|
||||||
|
fork = {{ anope_database_flatfile_fork | ternary('yes', 'no') }}
|
||||||
|
}
|
||||||
|
|
||||||
|
module
|
||||||
|
{
|
||||||
|
name = "enc_{{ anope_password_hash }}"
|
||||||
|
}
|
||||||
|
|
||||||
|
{% if anope_services_botserv_enabled %}
|
||||||
|
include
|
||||||
|
{
|
||||||
|
type = "file"
|
||||||
|
name = "botserv.conf"
|
||||||
|
}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if anope_services_chanserv_enabled %}
|
||||||
|
include
|
||||||
|
{
|
||||||
|
type = "file"
|
||||||
|
name = "chanserv.conf"
|
||||||
|
}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if anope_services_global_enabled %}
|
||||||
|
include
|
||||||
|
{
|
||||||
|
type = "file"
|
||||||
|
name = "global.conf"
|
||||||
|
}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if anope_services_hostserv_enabled %}
|
||||||
|
include
|
||||||
|
{
|
||||||
|
type = "file"
|
||||||
|
name = "hostserv.conf"
|
||||||
|
}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if anope_services_memoserv_enabled %}
|
||||||
|
include
|
||||||
|
{
|
||||||
|
type = "file"
|
||||||
|
name = "memoserv.conf"
|
||||||
|
}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if anope_services_nickserv_enabled %}
|
||||||
|
include
|
||||||
|
{
|
||||||
|
type = "file"
|
||||||
|
name = "nickserv.conf"
|
||||||
|
}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if anope_services_operserv_enabled %}
|
||||||
|
include
|
||||||
|
{
|
||||||
|
type = "file"
|
||||||
|
name = "operserv.conf"
|
||||||
|
}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{{ anope_additional_config }}
|
2
roles/anope/templates/etc/default/anope.j2
Normal file
2
roles/anope/templates/etc/default/anope.j2
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
{{ ansible_managed | comment }}
|
||||||
|
START=yes
|
Loading…
Add table
Reference in a new issue