Skip to content

jwflory/ansible-role-teleirc

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Ansible Role: teleirc

License

Deploy RITlug/teleirc chat bots to bridge IRC channels and Telegram groups

Requirements

No special requirements. Note this role requires root access; either run it in a playbook with a global become: yes or invoke the role in your playbook:

- hosts: servers
  roles:
    - role: jwflory.teleirc
      become: yes

Role Variables

Available variables are listed below, along with default values (see defaults/main.yml):

defaults/main.yml

default_irc_server: chat.freenode.net
default_irc_nickserv_service: NickServ
default_version: v2.0.0
  • default_irc_server: Default IRC server to connect to (defaults to Freenode)
  • default_irc_nickserv_service: Default authentication service for IRC server (defaults to NickServ)
  • default_version: Default version of TeleIRC to deploy (corresponds to git tag releases in upstream project)

vars/main.yml

bots:
  my_example_bot:
    cn: "my-example-bot"
    irc_blacklist: "noisy-irc-bot,ci-build-alerts"
    irc_bot_name: tg-my-example-bot
    irc_channel: "#ritlug-teleirc-sandbox"
    irc_server: "{{ default_irc_server }}"
    irc_nickserv_service: "{{ default_irc_nickserv_service }}"
    irc_nickserv_password: "{{ vault_bots.my_example_bot.vault_irc_nickserv_password }}"
    teleirc_token: "{{ vault_bots.my_example_bot.vault_teleirc_token }}"
    teleirc_chat_id: "{{ vault_bots.my_example_bot.vault_teleirc_chat_id }}"
    imgur_client_id: "{{ vault_default_imgur_client_id }}"
  • bots: List of all bots
  • bots.my_example_bot: Example of a single TeleIRC bot
  • bots.my_example_bot.cn: Common name. Used for directory names, systemd service name, and more.
  • bots.my_example_bot.irc_blacklist: Comma-separated string of IRC nicks to ignore
  • bots.my_example_bot.irc_bot_name: IRC nick of TeleIRC bridge bot
  • bots.my_example_bot.irc_channel: IRC channel for bot to join
  • bots.my_example_bot.irc_server: IRC server for bot to connect to (uses defaults/main.yml)
  • bots.my_example_bot.irc_nickserv_service: IRC account authentication method (uses defaults/main.yml)
  • bots.my_example_bot.irc_nickserv_password: See below
  • bots.my_example_bot.teleirc_token: See below
  • bots.my_example_bot.teleirc_chat_id: See below
  • bots.my_example_bot.imgur_client_id: See below

vars/vault.yml

# encrypt this with Ansible Vault before committing!

vault_default_imgur_client_id: "000000000000000"

vault_bots:
  my_example_bot:
    vault_irc_nickserv_password: ""
    vault_teleirc_token: "000000000:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
    vault_teleirc_chat_id: "-0000000000000"
  • default_imgur_client_id: Imgur API client ID to upload images from Telegram to Imgur
  • vault_bots: List of all bots
  • vault_bots.my_example_bot: Example of secrets for a single TeleIRC bot
  • vault_bots.my_example_bot.vault_irc_nickserv_password: Password to NickServ account on IRC server
  • vault_bots.my_example_bot.vault_teleirc_token: Telegram API bot token provided by the BotFather
  • vault_bots.my_example_bot.vault_teleirc_chat_id: Telegram chat ID of group for bridging to IRC

Dependencies

None.

Example Playbook

- hosts: servers
  roles:
     - role: jwflory.teleirc

License

BSD 3-Clause License.

Author Information

This role was first created in 2018 by Justin W. Flory.