• [^] # Re: API

    Posté par . En réponse à la dépêche Wiseflat, un serveur conteneurisé pour vos projets personnels. Évalué à 2.

    Voilà comme je résous le problème, avec un playbook ansible :

    - hosts: home-dnsmasq
     become: true
     tasks:
     - name: Baddomain - Get all domains
     get_url:
     url: https://api.wiseflat.com/baddomain/list
     dest: /etc/blacklist.dnsmasq
     mode: 0644
     - name: remove whitelist domains from blacklist.dnsmasq
     shell: sed -i '/{{ item }}/d' /etc/blacklist.dnsmasq
     with_items: "{{ api_baddomains_whitelist }}"
     - name: Reload dnsmasq service
     service:
     name: dnsmasq
     state: reloaded

    Ca se traduit par un run ansible :

    ➜ wiseflat-project git:(master) ✗ ansible-playbook play/tasks/api-baddomains.yml
    PLAY [home-dnsmasq] *********************************************************************************
    TASK [Gathering Facts] ******************************************************************************
    ok: [home-dnsmasq]
    TASK [Baddomain - Get all domains] ******************************************************************
    changed: [home-dnsmasq]
    TASK [remove whitelist domains from blacklist.dnsmasq] **********************************************
    changed: [home-dnsmasq] => (item=github.com)
    TASK [Reload dnsmasq service] ***********************************************************************
    changed: [home-dnsmasq]
    PLAY RECAP ******************************************************************************************
    home-dnsmasq : ok=4 changed=3 unreachable=0 failed=0
    
    • Je m'adapte en fonction des données renvoyées par l'API.
    • Je forge mes playbooks d'exploitation pour m'adapter à la situation
    • La sécurité reste optimale par défaut et je l'assouplie si j'ai besoin

    Je réponds à une autre question concernant l'utilité d'avoir un accès SSH dans ses containers. Je ne me connecte jamais sur le porte-container pour faire du lxc-attach.

    J'ai rajouté cette fonctionnalité dans le projet ansible. Le commit est sur GitHub