Jump to content

Tom

Members
  • Posts

    69
  • Joined

  • Last visited

  • Days Won

    9

Posts posted by Tom

  1. I was able to fix:

    • CouchDB clustering errors - Allow time for CouchDB to start before attempting to cluster it
    • FreeSwitch clustering errors - Wait 30 seconds after DB creation to give Kazoo time to fully start
    • Dependency errors - Do not hard-code Kazoo versions

    CouchDB Login Problem:

    • I ran into this issue as well, and it seems to be Kazoo related. I changed the owner of the /opt/couchdb folder, and restarted kazoo. It appears that Kazoo is changing the ownership. We might need to ask the 2600hz team for help with this.

    You can re-install all of the Ansible roles with --force. Let me know if you run into any more issues.

  2. The common role should add an exception so that each node in the cluster can communicate. What does /etc/firewalld/zones/kazoo-zone.xml look like on one of the servers on your cluster? Does it match the IP address that will be resolved for the server names you used in /etc/ansible/hosts?

    The kazoo domain variable is used to create an Nginx configuration for the domain where Monster UI will be hosted. For example, if your domain is monsterui.example.com, the kazoo domain variable would be monsterui.example.com.

  3. Thanks for the suggestion to improve the documentation. I always find documentation to be more difficult than the actual programming :) 

    Kazoo actually made it very easy to automate this because I was able to use the sup command to perform the clustering. Some of the sup commands are a bit easier for humans to read than machines, but a quick regex was able to fix that for me. Clustering CouchDB was actually the only hard part.

  4. On 9/25/2017 at 6:04 PM, FASTDEVICE said:

    @Karl Stallknecht Once configured as I'm showing, Postman becomes simple to use. Actually, it will be easier than the GUI and much more extensible. All that is being asked, is give it a try.  

    I totally agree with you. Postman is super easy to use, and it would be easier to maintain the examples going forward compared to a Monster UI application.

  5. I have developed an MIT-licensed set of Ansible roles for Kazoo called kazoo-ansible. The goal of kazoo-ansible is to provide the entire community with a way to easily manage a repeatable installation of a Kazoo cluster, so we can spend less time setting up and maintaining our Kazoo installations and more time on the unique offerings of our VOIP endeavors.

    kazoo-ansible has the following features:

    • Automatically clusters CouchDB, Freeswitch, Kamailio, and Kazoo
    • Let's Encrypt TLS certificate generation for Monster UI, including support for multiple Monster UI hosts
    • Uses CouchDB instead of BigCouch
    • Splits up roles for CouchDB, Freeswitch, Kamailio, Kazoo, Monster UI, and RabbitMQ to allow lots of cluster custimization
    • Publishes roles to Ansible Galaxy to allow easy integration into custom playbooks
    • Easy to install using included bootstrap scripts

    I have added installation documentation to make the installation more intuitive.

    kazoo-ansible is currently in a pre-release state. It is feature-complete and working for my needs; however, I'd really like to get feedback from the community before I release 1.0.0.

    Check out kazoo-ansible on GitHub: https://github.com/kazoo-ansible/kazoo-ansible

     

  6. Is the registration timeout in Kazoo greater than the registration timeout on the phones?

    You can check the Kazoo registrations with sup -n ecallmgr ecallmgr_maintenance registrar_summary

    If Kazoo drops the registration, you will either need to increase the timeout in Kazoo or decrease the timeout on the phones.

  7. Hi kalda,

    I'd be really happy to get your feedback if you'd like to test.

    Here are some really quick install instructions if you are interested:

    1. You need to run CentOS 7 for the Kazoo servers because that's the only distro where there are convenient packages available
    2. Install Ansible on your laptop/devops server
    3. Make sure all of the Ansible nodes are available with SSH key-based login
    4. Make sure all Ansible nodes have passwordless sudo available for the user you'll connect with over SSH
    5. Download the repo from GitHub
    6. Edit group_vars/all to your liking
      1. You should change everything in here to avoid default passwords/certs
      2. Change the domain name to whatever domain you plan on using for Monster UI
    7. Edit your /etc/ansible/hosts (or where ever you keep your inventory) and add the following roles:
      1. bigcouch
      2. rabbitmq
      3. kamailio
      4. freeswitch
      5. kazoo
    8. cd into the Git repository you downloaded and run ansible-playbook site.yml
    9. Perform the normal post-install steps (importing your media, adding your admin user, initializing the Monster apps)

    If you end up testing, let me know what kind of issues you run into or additions you'd like to see. I'd like to see if there are any bugs encountered by others and throw together some basic documentation, so I can push out a stable release.

  8. I'm currently working on an MIT-licensed Ansible Playbook to make my life as an administrator a little bit easier, and it's finally reaching a stable state after a few months of on and off development. It supports all of the major roles (Kazoo, BigCouch, RabbitMQ, Monster UI, Kamailio and FreeSwitch) and provides fully automated clustering. It really is as easy as enabling SSH key-based login, adding the hosts to Ansible, running the playbook, importing media, initializing Monster apps and creating the admin user.

    I plan on completing this project to suit my needs over time; however, I would be willing to start writing some documentation and moving the individual roles into the Ansible Galaxy to make it easier for others to use, but I want to gauge interest before I start working on these things.

    The project is available on GitHub: https://github.com/tnewman/kazoo-ansible, but I don't recommend using it until a stable release is tagged (I still reserve the right to change it right now :D).

×
×
  • Create New...