info:
  summary: Tumbleweed with rabbitmq
  description: |+
               This KankuFile creates a VM based on openSUSE Tumbleweeds dki image
               and installs rabbitmq

domain_name: rabbitmq
default_job: tasks
login_user: root
login_pass: kankudai

jobs:
 tasks:
  -
    use_module: Kanku::Handler::SetJobContext
  -
    use_module: Kanku::Handler::OBSCheck
    options:
      project: devel:kanku:images
      package: openSUSE-Tumbleweed-JeOS:ext4
      repository: images_tumbleweed
  -
    use_module: Kanku::Handler::ImageDownload
  -
    use_module: Kanku::Handler::CreateDomain
    options:
      memory: 2G
      vcpu: 2
      use_9p: 1
  -
    use_module: Kanku::Handler::PrepareSSH
  -
    use_module: Kanku::Handler::ExecuteCommandViaSSH
    options:
      commands:
        - zypper -n --gpg-auto-import-keys ref -s
        - zypper -n in python3
        - zypper -n in erlang-epmd
        # copy unit file for epmd.socket
        - cp /usr/lib/systemd/system/epmd.socket /etc/systemd/system/
        # configure epmd to listen on all interface instead of localhost only
        - perl -p -i -e 's/127.0.0.1/0.0.0.0/' /etc/systemd/system/epmd.socket
        # reload systemd
        - systemctl daemon-reload
        - systemctl enable --now epmd.service
        - zypper -n in rabbitmq-server rabbitmq-server-plugins
        - systemctl start rabbitmq-server
        - systemctl enable --now rabbitmq-server
  -
    use_module: Kanku::Handler::WaitForSystemd
  -
    use_module: Kanku::Handler::ExecuteCommandViaSSH
    options:
      commands:
        - rabbitmqctl add_user opensuse opensuse
        - rabbitmqctl set_permissions -p / opensuse ".*" ".*" ".*"
        - rabbitmqctl set_user_tags opensuse administrator
        - rabbitmq-plugins enable rabbitmq_management
        - systemctl restart rabbitmq-server
        - curl -o /root/bin/rabbitmqadmin http://localhost:15672/cli/rabbitmqadmin
        - chmod 700 /root/bin/rabbitmqadmin
        - /root/bin/rabbitmqadmin declare exchange name=pubsub type=topic auto_delete=false durable=true internal=false
