Skip to main content

No project description provided

Project description

[TOC]

    ---

    #### Prerequisites

    * Wireguard kernel module is installed and loaded:
    ```bash
    lsmod | grep wireguard
    ```

    * Optional:  Docker is installed and running: 
    ```sh
    docker system info
    ```
    ---
    #### Limitations

    * Docker network subnets can't overlap.
    * 10.69.0.0/16 is used for internal Wireguard network

    #### Steps
    ----
    ##### 1. Login to [https://platform.noia.network](https://platform.noia.network) 
    ---
    ##### 2. Create API key (Settings > API keys)

    ---

    ##### 3. Install NOIA Agent

    Possible versions:

    Stable:  ```noia/agent:prod```

    Development:  ```noia/agent:devel``` or ```noia/agent:latest```  


    ###### With Docker 

    ```bash
    docker run --network="host" --restart=on-failure:10 \ 
    --cap-add=NET_ADMIN --cap-add=SYS_MODULE \
    -v /var/run/docker.sock:/var/run/docker.sock:ro \
    --device /dev/net/tun:/dev/net/tun \
    --name=noia-agent \
    -e NOIA_API_KEY='z99CuiZnMhe2qtz4LLX43Gbho5Zu9G8oAoWRY68WdMTVB9GzuMY2HNn667A752EA' \
    -e NOIA_NETWORK_API='docker' \
    -d noia/agent:prod
    ```
    Check agent logs:

    ```docker logs noia-agent```

    More information:     [https://bitbucket.org/noianetwork-team/platform-agent/src/master/DOCKER.md](https://bitbucket.org/noianetwork-team/platform-agent/src/master/DOCKER.md)

    ---


    ###### With Docker-compose


    > With Portainer agent:

    ```bash
    curl  https://bitbucket.org/noianetwork-team/platform-agent/raw/master/docker-compose/na-pa.yml \
    -o docker-compose.yaml
    ```

    > Without portainer agent:

    ```bash
    curl  https://bitbucket.org/noianetwork-team/platform-agent/raw/master/docker-compose/noia-agent.yaml \
    -o docker-compose.yaml
    ```

    Edit ```docker-compose.yaml``` file and edit these environment variables:

    ```yaml
    NOIA_API_KEY= your_api_key
    ```

    Start containers:

    ```bash
    docker-compose up -d
    ```

    Check agent logs:
    ```bash
    docker logs noia-agent
    ```

    P.S. NOIA Agent will ignore the default docker network, you will  need to create a separate network with different subnets on different hosts. Also, subnet 10.69.0.0/16 is used by our agent.

    More information:

    [https://bitbucket.org/noianetwork-team/platform-agent/src/master/DOCKER_COMPOSE.md](https://bitbucket.org/noianetwork-team/platform-agent/src/master/DOCKER_COMPOSE.md)

    ---


    ###### With pip 

    ```bash
    pip3 install platform-agent
    ```

    Download systemd service file:

    ```bash
    curl https://bitbucket.org/noianetwork-team/platform-agent/raw/master/systemd/noia-agent.service \
    -o /etc/systemd/system/noia-agent.service
    ```

    Create noia-agent directory:
    ```bash
    mkdir /etc/noia-agent
    chmod -R 600 /etc/noia-agent
    ```
    Download settings file:
    ```bash
    curl https://bitbucket.org/noianetwork-team/platform-agent/raw/master/configs/config.yaml \
    -o /etc/noia-agent/config.yaml
    ```

    Edit settings file ```/etc/noia-agent/config.yaml``` and change these settings:

    ** Mandatory **
    ```yaml
    connection:
      api_key: vAVlRtYoiA2rfa3NHM7mgGpN23Sg1WWH
    ```
    ** Optional **

    Metadata (Optional)
    ```yaml
    name: Azure EU gateway

    connection:
      api_key: vAVlRtYoiA2rfa3NHM7mgGpN23Sg1WWH
      controller_url: app-controller-platform-agents.noia.network
      network_api: docker
      #Select one of providers from the list or default will be assigned
      #'AWS', 'DigtialOcean', 'Microsoft Azure', 'Rackspace', 'Alibaba Cloud',
      #'Google Cloud Platform', 'Oracle Cloud', 'VMware', 'IBM Cloud', 'Vultr'.
      provider: Microsoft Azure
      #Select one of the categories from the list or default will be assigned
      # 'zIoT', 'Server','none'
      category: IoT

    geo_location:
      lat: 40.14
      lon: -74.21
      country: Germany
      city: Frankfurt


    #Tags (Optional)
    #categorize your end-points. #You can use more than one tag. 

e.g. eu-group,fr-group tags: - Tag1 - Tag2

    #If `network_ids` not present the Agent will not automatically join any network when deployed
    network_ids:
      - network_1
      - network_2

    allowed_ips:
      - name: my_vpc
        subnet: 192.168.9.0/24
      - name: other_vpc
        subnet: 10.88.0.0/16
    ```

    ```bash
    systemctl  daemon-reload
    ```

    ```bash
    systemctl enable --now noia-agent
    ```

    Check if service is running:
    ```bash
    systemctl status noia-agent
    ```

    More information: [https://bitbucket.org/noianetwork-team/platform-agent/src/master/pip.md](https://bitbucket.org/noianetwork-team/platform-agent/src/master/pip.md)

    ---


    ###### On Portainer

    1. Select image:

    ![alt_text](images/image.png "Select docker image")


    2. Select network (Agent **MUST** run in the host network): 

    ![alt_text](images/network.png "Select network")

    3. Add environment variables:

    ** Mandatory variables: **

    ```ini
    NOIA_API_KEY= your_api_key
    ```

    ** Metadata (Optional) **
    ```ini
    -e NOIA_NETWORK_API='docker'
    -e NOIA_NAME='Azure EU gateway '
    -e NOIA_COUNTRY='Germany'
    -e NOIA_CITY='Frankfurt'

    #Select one of the categories from the list or default will be assigned 
    # 'IoT','Server','none' 
    -e NOIA_CATEGORY='IoT'

    #Select one of providers from the list or default will be assigned 
    #'AWS', 'DigitalOcean', 'Microsoft Azure', 'Rackspace', 'Alibaba Cloud', 
    #'Google Cloud Platform', 'Oracle Cloud', 'VMware', 'IBM Cloud', 'Vultr'. 

    -e NOIA_PROVIDER ='Microsoft Azure'
    -e NOIA_LAT='40.14'
    -e NOIA_LON='-74.21'

    #You can manually add allowed ips
    -e NOIA_ALLOWED_IPS='[{"127.0.24.0/24": "myvpc"}, {"192.168.24.0/32": "vpc"}]'
    ```


    ![alt_text](images/env.png "Add environment variables")


    (noia agent will read docker subnets and report them to the controller). If this variable is selected, you also need to add docker.sock as a read-only volume;

    ![alt_text](images/volumes.png "Add docker.sock")


    4. Add additional capabilities (NET_ADMIN and SYS_MODULE): 

    ![alt_text](images/cap.png "image_tooltip")


    5. All agents will appear in NOIA Platform as endpoints:

    ![alt_text](images/endpoints.png "Endpoints")



    6. To connect endpoints to a network, select Networks > Add new network. Input Network name, select Type (if you want connect multiple Portainer agents to Portainer, choose Gateway and select Portainer host as a gateway and select agents which you want to connect), then click Add: 

    ![alt_text](images/create_net.png "Create network")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

platform-agent-devel-0.0.4.tar.gz (13.6 kB view hashes)

Uploaded Source

Built Distribution

platform_agent_devel-0.0.4-py3-none-any.whl (19.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page