Mender System Update

Once the Mender server is running and the Device Under Test (DUT) is provisioned, the next step is to deliver your update payloads to the server for performing system update on DUT.

Requirements:

This section covers two different scenarios.

  • Signed artifacts for secure deployments.

  • Unsigned artifact to demonstrate failure deployments.

  • Setup :

    Copy artifact key from the host machine to the DUT.

    scp -o "StrictHostKeyChecking no" ${HOST_MACHINE_USER}@${MENDER_SERVER_IP}:${MENDER_SERVER_DIR}/keys/artifact-verify-key.pem ${MENDER_DUT_TEST_DIR}
    

    Install the artifact key to validate the incoming mender artifacts which are deployed from the Mender server.

    cp ./artifact-verify-key.pem /etc/mender
    
  • Deploying Updates :

    To trigger an unsigned system update, we deploy an unsigned artifact.

    create_artifact_deployment unsigned-image
    check_for_unsigned_update
    

    Expected outcome:

    • The device rejects the artifact due to missing or invalid signature.

    • This also validates proper enforcement of security policies.

    To trigger a signed system update, we deploy a signed artifact.

    create_artifact_deployment release-2
    wait_for_signed_update
    

    Expected outcome:

    • The artifact passes signature validation.

    • The Mender client downloads and installs the update.

    • The device reboots upon successful deployment.

    Note

    Please allow up to 30 minutes for the DUT to automatically reboot after running these commands.

  • Final Verification :

    Final check to confirm that the signed system update was successfully completed and acknowledged by DUT to the Mender server.

    This step ensures the DUT, is able to securely communicate with the correct Mender server that was used during the provisioning and deployment steps.

    Once the DUT has rebooted after applying the mender system update login and switch to root user:

    sudo su -
    

    These are the required environment variables, refer here for more details.

    • MENDER_DUT_TEST_DIR

    • MENDER_SERVER_HTTPS_PORT

    • MENDER_SERVER_HTTP_PORT

    • MENDER_SERVER_IP

    • MENDER_SERVER_NAME

    cd  ${MENDER_DUT_TEST_DIR}
    cp  ${MENDER_DUT_TEST_DIR}/artifact-verify-key.pem /etc/mender
    cp  ${MENDER_DUT_TEST_DIR}/mender.crt /etc/mender
    chmod 644 /etc/mender/mender.crt
    

    Note

    This step is required for corstone1000-fvp machine to prevent unexpected shutdown during the validation of mender system update.

    sudo ip link set eth0 down
    

    Setup environment variables and load helper functions used for final validation.

    source ./mender_test_helper.sh
    

    Restart Mender authentication service to reinitialize secure communication.

    systemctl restart mender-authd
    

    Note

    This step is required for corstone1000-fvp machine to prevent unexpected shutdown during the validation of mender system update.

    sudo ip link set eth0 up
    

    Finally, check to confirm the signed update was applied successfully.

    check_for_signed_update