Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »

The following procedure is provided to guide EAM administrators in the installation of the solution. Carefully review the pre-requisites section before starting the procedure itself.

The inventory file provided by default with the EAM installation package (also available in the example files section) is intended to be used in All-In-One deployments. This means all components run on a single server and communicate using HOSTS file. If you have specific requirements for your deployment scenario, refer to the Generic deployment guidelines section for specific instructions to address your needs.

Prerequisites

Make sure all these prerequisites are met or else the installation procedure will fail.

  • Ensure the host can connect to public URLs on the Internet.

  • Ensure you can access through SSH the host using its main service IP address. It should be also possible to open an SSH connection from the same host using that IP address.

  • Ensure that the user has sudo privileges set without entering the password. To set sudo without the password:
    echo "{USERNAME_WHO_RUN_ANSIBLE} ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/devo

  • Download the Devo domain certs:

    • Connect to your Devo domain web interface.

    • Access to Administration → Credentials in the left pane.

    • Select X.509 certificates in the upper menu

    • Select your certificate, download them and rename them as:

      • Click on CHAIN CA in the upper right corner ->chain.crt

      • Click on certificate on the certificate row -> domain.crt

      • Click on private key on the certificate row -> domain.key

    • Copy the files to $HOME/devo-ea-deployer/domain-certs

Some images of Amazon Linux 2 come with python3 pre-installed. If python3 is installed, it can be uninstalled as described here.

Installation procedure

All ansible/python commands must be run within the virtual environment. Also ensure that deam_packs associated with the deployment_inventory.yaml file used during deployment are enabled.


 Requirements installation
  1. Download the package to your $HOME folder and extract it:

    tar -xzvf devo-ea-deployer-1.4.0.tgz
  2. Change the working directory to the path where the installation package was extracted:

    cd $HOME/devo-ea-deployer
  3. Run the preparation script:

    curl -L -u dea-repo:Th3R3p0! https://d2ur64jmn3k7yt.cloudfront.net/gtls/getansible-venv.sh | /bin/bash
  4. Activate the virtual environment with the command displayed at the end of the execution of the previous command. Typically it will be something like:

    source "/opt/ansible-2.9/venv/bin/activate"
  5. Install the Ansible playbooks' dependencies:

    ansible-galaxy install -r playbooks/roles/requirements.yaml
 Inventory creation

The inventory is the base of the deployment process and will define the topology of the deployment. For more information on the ansible inventory, check this article.

The inventory file can be created using the inventory creation wizard or using the example files provided with the packages and editing them manually. Remember to have the virtual environment activated (step 4 in “Requirements Installation”).

Inventory creation (using wizard)

  1. Execute the inventory creation wizard specifying the inventory output file. The wizard will create the inventory file based on your inputs to a series of questions.

    python tools/cookiecutinvt.py -o inventories/deployment_inventory.yaml
  2. For security reasons, we strongly recommend that you change the default password of root user for MySQL service. It is only needed when the MySQL service is deployed in a docker container.
    To configure the password for the MySQL root user, edit the inventory file inventories/deployment_inventory.yaml

    vim inventories/deployment_inventory.yaml

    and add deam_mysql_root_password variable with a strong password in its value.

    all:
      vars:
        deam_mysql_root_password: <<ROOT PASSWORD HERE>>

    Replace <<ROOT PASSWORD HERE>> by the password value of your choice.

Bear in mind that indentation is very important in yaml files.

Inventory creation (using example file)

  1. Copy the example inventories/1host-example.yaml and save it as inventories/deployment_inventory.yaml

  2. Edit the file based in the particular requirements of the installation. Refer to this article to create a proper inventory for your environment in a production deployment. Minimal configuration for a standard lab and PoC deployment in a single server is depicted in steps 7 and 8.

  3. Set the following properties under all.hosts.devo-ea-manager yaml section:

    • ansible_host: Devo Endpoint Agent Manager IP.

    • ansible_user: User that will run Devo EAM. Same as the user that has been configured previously in sudoers

    • ansible_ssh_password: User SSH Password that runs Devo EAM User (ansible_user)

    • Enable the packs that you want to deploy, for more info check this article.

    • If you want to use a private key instead of user and password, please check this article.

  4. Set the property ansible_python_interpreter according to your python interpreter:

    1. For Red Hat 7: /usr/bin/python

    2. For other distros: /usr/bin/python3

  5. Set the following properties under all.vars yaml section:

    • deam_relay_entrypoint : tcp://FQDN_CENTRAL_RELAY:443. Where FQDN_CENTRAL_RELAY is the FQDN of your central Devo relay :

      • If your domain is deployed in the US Cloud (us.devo.com): tcp://us.elb.relay.logtrust.net:443

      • If your domain is deployed in the EU Cloud (eu.devo.com): tcp://eu.elb.relay.logtrust.net:443

      • If your domain is deployed in a different cloud, contact your Devo representative to know your entry point.

      • To send the data via a Devo Relay instead of sending it directly to Devo check here.

 Inventory verification
  1. Run the Deployment Inventory Checker Script and check that no errors or relevant warnings are showing by running:

    python tools/checkinvt.py -i inventories/deployment_inventory.yaml

    Deployment Inventory Checker Script will run validations on the inventory and report back if an issue is found. For more info on the Deployment Inventory Checker Script, see this article.

  2. Run the pre-requisites playbook to ensure that all external connectivity and requirements are in place. The playbook will output a summary with all the URLs connectivity that has been checked. If there is any error there, please fix it before moving ahead with the deployment. Deployment playbook will verify again these requirements and stop if they are not satisfied.

     ansible-playbook -i inventories/deployment_inventory.yaml playbooks/dea-pre-checks.yaml
 Deployment

Run Ansible playbook:

ansible-playbook -i inventories/deployment_inventory.yaml playbooks/devo-endpoint-agent.yaml

Now you can connect to the server app using https://DEAM_IP:8080, where DEAM_IP is the Devo Endpoint Agent Manager IP. E-mail and password were configured in your inventory file. Note that from EA 1.3 onwards, logging in to the platform is done using e-mail instead of username. (More info)

Upon agent installation, all monitored endpoints should be automatically detected and listed as an active host. If the website was already opened before adding the host, a page refresh is required. This is an example screenshot:


Services verification

Use the following commands to verify the status of all the services exposed by the EA Manager:

  • To check the status port 8080:

    systemctl status devo-ea-manager
  • To check the status port 8081:

    systemctl status nginx

  • No labels