ansible letsencrypt

Dear all:

I run ansible letsencrypt show error message please help me thanks.

TASK [ansible-letsencrypt : update the apt cache] ******************************
task path: /home/ldap/.ansible/roles/ansible-letsencrypt/tasks/ubuntu-xenial.yml:2
skipping: [localhost] => {
“changed”: false,
“skip_reason”: “Conditional result was False”
}

TASK [ansible-letsencrypt : add certbot apt ppa repository] ********************
task path: /home/ldap/.ansible/roles/ansible-letsencrypt/tasks/ubuntu-xenial.yml:6
skipping: [localhost] => {
“changed”: false,
“skip_reason”: “Conditional result was False”
}

TASK [ansible-letsencrypt : install certbot ubuntu] ****************************
task path: /home/ldap/.ansible/roles/ansible-letsencrypt/tasks/ubuntu-xenial.yml:11
skipping: [localhost] => {
“changed”: false,
“skip_reason”: “Conditional result was False”
}

playbook

  • name: update the apt cache
    apt: update_cache=yes cache_valid_time=7200
    become: yes

  • name: add certbot apt ppa repository
    apt_repository:
    repo: “ppa:certbot/certbot”
    become: yes

  • name: install certbot ubuntu
    apt: name=certbot state=latest
    become: yes

  • name: change the path to letsencrypt
    set_fact:
    letsencrypt_path: “/usr/bin/letsencrypt”

Dear all:

I run ansible letsencrypt show error message please help me thanks.

Hello Sandy,

these aren't error messages. The tasks are skipped for some reason. Please provide complete output
of your playbook run.

Regards
        Racke

Hi Racke:

For your reference.

PLAYBOOK: jitsimeet.yml ********************************************************
1 plays in jitsimeet.yml

PLAY [localhost] ***************************************************************

TASK [Gathering Facts] *********************************************************
task path: /home/ldap/jitsimeet.yml:2
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1588133310.54-904732015206 `" && echo ansible-tmp-1588133310.54-904732015206="` echo /root/.ansible/tmp/ansible-tmp-1588133310.54-904732015206 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/system/setup.py
<127.0.0.1> PUT /home/ldap/.ansible/tmp/ansible-local-20787S7mu_g/tmp62nvvZ TO /root/.ansible/tmp/ansible-tmp-1588133310.54-904732015206/AnsiballZ_setup.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1588133310.54-904732015206/ /root/.ansible/tmp/ansible-tmp-1588133310.54-904732015206/AnsiballZ_setup.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1588133310.54-904732015206/AnsiballZ_setup.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1588133310.54-904732015206/ > /dev/null 2>&1 && sleep 0'
ok: [localhost]
META: ran handlers

TASK [ansible-letsencrypt : apt] ***********************************************
task path: /home/ldap/.ansible/roles/ansible-letsencrypt/tasks/main.yml:2
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1588133311.94-196193725066580 `" && echo ansible-tmp-1588133311.94-196193725066580="` echo /root/.ansible/tmp/ansible-tmp-1588133311.94-196193725066580 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/packaging/os/apt.py
<127.0.0.1> PUT /home/ldap/.ansible/tmp/ansible-local-20787S7mu_g/tmppBbvH9 TO /root/.ansible/tmp/ansible-tmp-1588133311.94-196193725066580/AnsiballZ_apt.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1588133311.94-196193725066580/ /root/.ansible/tmp/ansible-tmp-1588133311.94-196193725066580/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1588133311.94-196193725066580/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1588133311.94-196193725066580/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => {
    "cache_update_time": 1588132727,
    "cache_updated": false,
    "changed": false,
    "invocation": {
        "module_args": {
            "allow_unauthenticated": false,
            "autoclean": false,
            "autoremove": false,
            "cache_valid_time": 3600,
            "deb": null,
            "default_release": null,
            "dpkg_options": "force-confdef,force-confold",
            "force": false,
            "force_apt_get": false,
            "install_recommends": null,
            "only_upgrade": false,
            "package": null,
            "policy_rc_d": null,
            "purge": false,
            "state": "present",
            "update_cache": true,
            "upgrade": null
        }
    }
}

TASK [ansible-letsencrypt : include_vars] **************************************
task path: /home/ldap/.ansible/roles/ansible-letsencrypt/tasks/main.yml:7
ok: [localhost] => (item=/home/ldap/.ansible/roles/ansible-letsencrypt/vars/../vars/default.yml) => {
    "ansible_facts": {
        "letsencrypt_depends": [
            "python",
            "python-dev",
            "python-virtualenv",
            "gcc",
            "dialog",
            "libaugeas0",
            "libssl-dev",
            "libffi-dev",
            "ca-certificates",
            "python-pip",
            "git"
        ],
        "virtualenv_package_name": "virtualenv"
    },
    "ansible_included_var_files": [
        "/home/ldap/.ansible/roles/ansible-letsencrypt/vars/default.yml"
    ],
    "ansible_loop_var": "item",
    "changed": false,
    "item": "/home/ldap/.ansible/roles/ansible-letsencrypt/vars/../vars/default.yml"
}

TASK [ansible-letsencrypt : update the apt cache] ******************************
task path: /home/ldap/.ansible/roles/ansible-letsencrypt/tasks/ubuntu-xenial.yml:2
skipping: [localhost] => {
    "changed": false,
    "skip_reason": "Conditional result was False"
}

TASK [ansible-letsencrypt : add certbot apt ppa repository] ********************
task path: /home/ldap/.ansible/roles/ansible-letsencrypt/tasks/ubuntu-xenial.yml:6
skipping: [localhost] => {
    "changed": false,
    "skip_reason": "Conditional result was False"
}

TASK [ansible-letsencrypt : install certbot ubuntu] ****************************
task path: /home/ldap/.ansible/roles/ansible-letsencrypt/tasks/ubuntu-xenial.yml:11
skipping: [localhost] => {
    "changed": false,
    "skip_reason": "Conditional result was False"
}

TASK [ansible-letsencrypt : change the path to letsencrypt] ********************
task path: /home/ldap/.ansible/roles/ansible-letsencrypt/tasks/ubuntu-xenial.yml:15
skipping: [localhost] => {
    "changed": false,
    "skip_reason": "Conditional result was False"
}

TASK [ansible-letsencrypt : Warn about using pip] ******************************
task path: /home/ldap/.ansible/roles/ansible-letsencrypt/tasks/install-with-pip.yml:2
ok: [localhost] => {
    "msg": "Warning: installing letsencrypt using pip is not officially supported and may break with upgrades."
}

TASK [ansible-letsencrypt : Install depends] ***********************************
task path: /home/ldap/.ansible/roles/ansible-letsencrypt/tasks/install-with-pip.yml:6
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1588133313.89-104668405280708 `" && echo ansible-tmp-1588133313.89-104668405280708="` echo /root/.ansible/tmp/ansible-tmp-1588133313.89-104668405280708 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/packaging/os/apt.py
<127.0.0.1> PUT /home/ldap/.ansible/tmp/ansible-local-20787S7mu_g/tmp4UKJ9B TO /root/.ansible/tmp/ansible-tmp-1588133313.89-104668405280708/AnsiballZ_apt.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1588133313.89-104668405280708/ /root/.ansible/tmp/ansible-tmp-1588133313.89-104668405280708/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1588133313.89-104668405280708/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1588133313.89-104668405280708/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => (item=python) => {
    "ansible_loop_var": "item",
    "cache_update_time": 1588132727,
    "cache_updated": false,
    "changed": false,
    "invocation": {
        "module_args": {
            "allow_unauthenticated": false,
            "autoclean": false,
            "autoremove": false,
            "cache_valid_time": 0,
            "deb": null,
            "default_release": null,
            "dpkg_options": "force-confdef,force-confold",
            "force": false,
            "force_apt_get": false,
            "install_recommends": null,
            "name": "python",
            "only_upgrade": false,
            "package": [
                "python"
            ],
            "policy_rc_d": null,
            "purge": false,
            "state": "present",
            "update_cache": null,
            "upgrade": null
        }
    },
    "item": "python"
}
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1588133315.23-183764780581837 `" && echo ansible-tmp-1588133315.23-183764780581837="` echo /root/.ansible/tmp/ansible-tmp-1588133315.23-183764780581837 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/packaging/os/apt.py
<127.0.0.1> PUT /home/ldap/.ansible/tmp/ansible-local-20787S7mu_g/tmp5ogLop TO /root/.ansible/tmp/ansible-tmp-1588133315.23-183764780581837/AnsiballZ_apt.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1588133315.23-183764780581837/ /root/.ansible/tmp/ansible-tmp-1588133315.23-183764780581837/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1588133315.23-183764780581837/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1588133315.23-183764780581837/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => (item=python-dev) => {
    "ansible_loop_var": "item",
    "cache_update_time": 1588132727,
    "cache_updated": false,
    "changed": false,
    "invocation": {
        "module_args": {
            "allow_unauthenticated": false,
            "autoclean": false,
            "autoremove": false,
            "cache_valid_time": 0,
            "deb": null,
            "default_release": null,
            "dpkg_options": "force-confdef,force-confold",
            "force": false,
            "force_apt_get": false,
            "install_recommends": null,
            "name": "python-dev",
            "only_upgrade": false,
            "package": [
                "python-dev"
            ],
            "policy_rc_d": null,
            "purge": false,
            "state": "present",
            "update_cache": null,
            "upgrade": null
        }
    },
    "item": "python-dev"
}
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1588133316.55-183916375901722 `" && echo ansible-tmp-1588133316.55-183916375901722="` echo /root/.ansible/tmp/ansible-tmp-1588133316.55-183916375901722 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/packaging/os/apt.py
<127.0.0.1> PUT /home/ldap/.ansible/tmp/ansible-local-20787S7mu_g/tmpR02SEt TO /root/.ansible/tmp/ansible-tmp-1588133316.55-183916375901722/AnsiballZ_apt.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1588133316.55-183916375901722/ /root/.ansible/tmp/ansible-tmp-1588133316.55-183916375901722/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1588133316.55-183916375901722/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1588133316.55-183916375901722/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => (item=python-virtualenv) => {
    "ansible_loop_var": "item",
    "cache_update_time": 1588132727,
    "cache_updated": false,
    "changed": false,
    "invocation": {
        "module_args": {
            "allow_unauthenticated": false,
            "autoclean": false,
            "autoremove": false,
            "cache_valid_time": 0,
            "deb": null,
            "default_release": null,
            "dpkg_options": "force-confdef,force-confold",
            "force": false,
            "force_apt_get": false,
            "install_recommends": null,
            "name": "python-virtualenv",
            "only_upgrade": false,
            "package": [
                "python-virtualenv"
            ],
            "policy_rc_d": null,
            "purge": false,
            "state": "present",
            "update_cache": null,
            "upgrade": null
        }
    },
    "item": "python-virtualenv"
}
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1588133317.88-125379477213311 `" && echo ansible-tmp-1588133317.88-125379477213311="` echo /root/.ansible/tmp/ansible-tmp-1588133317.88-125379477213311 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/packaging/os/apt.py
<127.0.0.1> PUT /home/ldap/.ansible/tmp/ansible-local-20787S7mu_g/tmpFFyxdf TO /root/.ansible/tmp/ansible-tmp-1588133317.88-125379477213311/AnsiballZ_apt.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1588133317.88-125379477213311/ /root/.ansible/tmp/ansible-tmp-1588133317.88-125379477213311/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1588133317.88-125379477213311/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1588133317.88-125379477213311/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => (item=gcc) => {
    "ansible_loop_var": "item",
    "cache_update_time": 1588132727,
    "cache_updated": false,
    "changed": false,
    "invocation": {
        "module_args": {
            "allow_unauthenticated": false,
            "autoclean": false,
            "autoremove": false,
            "cache_valid_time": 0,
            "deb": null,
            "default_release": null,
            "dpkg_options": "force-confdef,force-confold",
            "force": false,
            "force_apt_get": false,
            "install_recommends": null,
            "name": "gcc",
            "only_upgrade": false,
            "package": [
                "gcc"
            ],
            "policy_rc_d": null,
            "purge": false,
            "state": "present",
            "update_cache": null,
            "upgrade": null
        }
    },
    "item": "gcc"
}
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1588133319.19-264725587997305 `" && echo ansible-tmp-1588133319.19-264725587997305="` echo /root/.ansible/tmp/ansible-tmp-1588133319.19-264725587997305 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/packaging/os/apt.py
<127.0.0.1> PUT /home/ldap/.ansible/tmp/ansible-local-20787S7mu_g/tmpBwCqQI TO /root/.ansible/tmp/ansible-tmp-1588133319.19-264725587997305/AnsiballZ_apt.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1588133319.19-264725587997305/ /root/.ansible/tmp/ansible-tmp-1588133319.19-264725587997305/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1588133319.19-264725587997305/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1588133319.19-264725587997305/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => (item=dialog) => {
    "ansible_loop_var": "item",
    "cache_update_time": 1588132727,
    "cache_updated": false,
    "changed": false,
    "invocation": {
        "module_args": {
            "allow_unauthenticated": false,
            "autoclean": false,
            "autoremove": false,
            "cache_valid_time": 0,
            "deb": null,
            "default_release": null,
            "dpkg_options": "force-confdef,force-confold",
            "force": false,
            "force_apt_get": false,
            "install_recommends": null,
            "name": "dialog",
            "only_upgrade": false,
            "package": [
                "dialog"
            ],
            "policy_rc_d": null,
            "purge": false,
            "state": "present",
            "update_cache": null,
            "upgrade": null
        }
    },
    "item": "dialog"
}
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1588133320.5-107330259244754 `" && echo ansible-tmp-1588133320.5-107330259244754="` echo /root/.ansible/tmp/ansible-tmp-1588133320.5-107330259244754 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/packaging/os/apt.py
<127.0.0.1> PUT /home/ldap/.ansible/tmp/ansible-local-20787S7mu_g/tmpeAt3ow TO /root/.ansible/tmp/ansible-tmp-1588133320.5-107330259244754/AnsiballZ_apt.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1588133320.5-107330259244754/ /root/.ansible/tmp/ansible-tmp-1588133320.5-107330259244754/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1588133320.5-107330259244754/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1588133320.5-107330259244754/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => (item=libaugeas0) => {
    "ansible_loop_var": "item",
    "cache_update_time": 1588132727,
    "cache_updated": false,
    "changed": false,
    "invocation": {
        "module_args": {
            "allow_unauthenticated": false,
            "autoclean": false,
            "autoremove": false,
            "cache_valid_time": 0,
            "deb": null,
            "default_release": null,
            "dpkg_options": "force-confdef,force-confold",
            "force": false,
            "force_apt_get": false,
            "install_recommends": null,
            "name": "libaugeas0",
            "only_upgrade": false,
            "package": [
                "libaugeas0"
            ],
            "policy_rc_d": null,
            "purge": false,
            "state": "present",
            "update_cache": null,
            "upgrade": null
        }
    },
    "item": "libaugeas0"
}
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1588133321.82-129700094407724 `" && echo ansible-tmp-1588133321.82-129700094407724="` echo /root/.ansible/tmp/ansible-tmp-1588133321.82-129700094407724 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/packaging/os/apt.py
<127.0.0.1> PUT /home/ldap/.ansible/tmp/ansible-local-20787S7mu_g/tmpo1tUv4 TO /root/.ansible/tmp/ansible-tmp-1588133321.82-129700094407724/AnsiballZ_apt.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1588133321.82-129700094407724/ /root/.ansible/tmp/ansible-tmp-1588133321.82-129700094407724/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1588133321.82-129700094407724/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1588133321.82-129700094407724/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => (item=libssl-dev) => {
    "ansible_loop_var": "item",
    "cache_update_time": 1588132727,
    "cache_updated": false,
    "changed": false,
    "invocation": {
        "module_args": {
            "allow_unauthenticated": false,
            "autoclean": false,
            "autoremove": false,
            "cache_valid_time": 0,
            "deb": null,
            "default_release": null,
            "dpkg_options": "force-confdef,force-confold",
            "force": false,
            "force_apt_get": false,
            "install_recommends": null,
            "name": "libssl-dev",
            "only_upgrade": false,
            "package": [
                "libssl-dev"
            ],
            "policy_rc_d": null,
            "purge": false,
            "state": "present",
            "update_cache": null,
            "upgrade": null
        }
    },
    "item": "libssl-dev"
}
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1588133323.13-171267235123001 `" && echo ansible-tmp-1588133323.13-171267235123001="` echo /root/.ansible/tmp/ansible-tmp-1588133323.13-171267235123001 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/packaging/os/apt.py
<127.0.0.1> PUT /home/ldap/.ansible/tmp/ansible-local-20787S7mu_g/tmp4boqxv TO /root/.ansible/tmp/ansible-tmp-1588133323.13-171267235123001/AnsiballZ_apt.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1588133323.13-171267235123001/ /root/.ansible/tmp/ansible-tmp-1588133323.13-171267235123001/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1588133323.13-171267235123001/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1588133323.13-171267235123001/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => (item=libffi-dev) => {
    "ansible_loop_var": "item",
    "cache_update_time": 1588132727,
    "cache_updated": false,
    "changed": false,
    "invocation": {
        "module_args": {
            "allow_unauthenticated": false,
            "autoclean": false,
            "autoremove": false,
            "cache_valid_time": 0,
            "deb": null,
            "default_release": null,
            "dpkg_options": "force-confdef,force-confold",
            "force": false,
            "force_apt_get": false,
            "install_recommends": null,
            "name": "libffi-dev",
            "only_upgrade": false,
            "package": [
                "libffi-dev"
            ],
            "policy_rc_d": null,
            "purge": false,
            "state": "present",
            "update_cache": null,
            "upgrade": null
        }
    },
    "item": "libffi-dev"
}
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1588133324.44-38025154142717 `" && echo ansible-tmp-1588133324.44-38025154142717="` echo /root/.ansible/tmp/ansible-tmp-1588133324.44-38025154142717 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/packaging/os/apt.py
<127.0.0.1> PUT /home/ldap/.ansible/tmp/ansible-local-20787S7mu_g/tmpIIjln1 TO /root/.ansible/tmp/ansible-tmp-1588133324.44-38025154142717/AnsiballZ_apt.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1588133324.44-38025154142717/ /root/.ansible/tmp/ansible-tmp-1588133324.44-38025154142717/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1588133324.44-38025154142717/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1588133324.44-38025154142717/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => (item=ca-certificates) => {
    "ansible_loop_var": "item",
    "cache_update_time": 1588132727,
    "cache_updated": false,
    "changed": false,
    "invocation": {
        "module_args": {
            "allow_unauthenticated": false,
            "autoclean": false,
            "autoremove": false,
            "cache_valid_time": 0,
            "deb": null,
            "default_release": null,
            "dpkg_options": "force-confdef,force-confold",
            "force": false,
            "force_apt_get": false,
            "install_recommends": null,
            "name": "ca-certificates",
            "only_upgrade": false,
            "package": [
                "ca-certificates"
            ],
            "policy_rc_d": null,
            "purge": false,
            "state": "present",
            "update_cache": null,
            "upgrade": null
        }
    },
    "item": "ca-certificates"
}
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1588133325.88-192231874757880 `" && echo ansible-tmp-1588133325.88-192231874757880="` echo /root/.ansible/tmp/ansible-tmp-1588133325.88-192231874757880 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/packaging/os/apt.py
<127.0.0.1> PUT /home/ldap/.ansible/tmp/ansible-local-20787S7mu_g/tmpECOMku TO /root/.ansible/tmp/ansible-tmp-1588133325.88-192231874757880/AnsiballZ_apt.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1588133325.88-192231874757880/ /root/.ansible/tmp/ansible-tmp-1588133325.88-192231874757880/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1588133325.88-192231874757880/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1588133325.88-192231874757880/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => (item=python-pip) => {
    "ansible_loop_var": "item",
    "cache_update_time": 1588132727,
    "cache_updated": false,
    "changed": false,
    "invocation": {
        "module_args": {
            "allow_unauthenticated": false,
            "autoclean": false,
            "autoremove": false,
            "cache_valid_time": 0,
            "deb": null,
            "default_release": null,
            "dpkg_options": "force-confdef,force-confold",
            "force": false,
            "force_apt_get": false,
            "install_recommends": null,
            "name": "python-pip",
            "only_upgrade": false,
            "package": [
                "python-pip"
            ],
            "policy_rc_d": null,
            "purge": false,
            "state": "present",
            "update_cache": null,
            "upgrade": null
        }
    },
    "item": "python-pip"
}
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1588133327.29-153430411180201 `" && echo ansible-tmp-1588133327.29-153430411180201="` echo /root/.ansible/tmp/ansible-tmp-1588133327.29-153430411180201 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/packaging/os/apt.py
<127.0.0.1> PUT /home/ldap/.ansible/tmp/ansible-local-20787S7mu_g/tmpWNWKKL TO /root/.ansible/tmp/ansible-tmp-1588133327.29-153430411180201/AnsiballZ_apt.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1588133327.29-153430411180201/ /root/.ansible/tmp/ansible-tmp-1588133327.29-153430411180201/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1588133327.29-153430411180201/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1588133327.29-153430411180201/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => (item=git) => {
    "ansible_loop_var": "item",
    "cache_update_time": 1588132727,
    "cache_updated": false,
    "changed": false,
    "invocation": {
        "module_args": {
            "allow_unauthenticated": false,
            "autoclean": false,
            "autoremove": false,
            "cache_valid_time": 0,
            "deb": null,
            "default_release": null,
            "dpkg_options": "force-confdef,force-confold",
            "force": false,
            "force_apt_get": false,
            "install_recommends": null,
            "name": "git",
            "only_upgrade": false,
            "package": [
                "git"
            ],
            "policy_rc_d": null,
            "purge": false,
            "state": "present",
            "update_cache": null,
            "upgrade": null
        }
    },
    "item": "git"
}

TASK [ansible-letsencrypt : Install virtualenv] ********************************
task path: /home/ldap/.ansible/roles/ansible-letsencrypt/tasks/install-with-pip.yml:12
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1588133328.84-243666114975836 `" && echo ansible-tmp-1588133328.84-243666114975836="` echo /root/.ansible/tmp/ansible-tmp-1588133328.84-243666114975836 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/packaging/os/apt.py
<127.0.0.1> PUT /home/ldap/.ansible/tmp/ansible-local-20787S7mu_g/tmpbUtZqK TO /root/.ansible/tmp/ansible-tmp-1588133328.84-243666114975836/AnsiballZ_apt.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1588133328.84-243666114975836/ /root/.ansible/tmp/ansible-tmp-1588133328.84-243666114975836/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1588133328.84-243666114975836/AnsiballZ_apt.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1588133328.84-243666114975836/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => (item=virtualenv) => {
    "ansible_loop_var": "item",
    "cache_update_time": 1588132727,
    "cache_updated": false,
    "changed": false,
    "invocation": {
        "module_args": {
            "allow_unauthenticated": false,
            "autoclean": false,
            "autoremove": false,
            "cache_valid_time": 0,
            "deb": null,
            "default_release": null,
            "dpkg_options": "force-confdef,force-confold",
            "force": false,
            "force_apt_get": false,
            "install_recommends": null,
            "name": "virtualenv",
            "only_upgrade": false,
            "package": [
                "virtualenv"
            ],
            "policy_rc_d": null,
            "purge": false,
            "state": "present",
            "update_cache": null,
            "upgrade": null
        }
    },
    "item": "virtualenv"
}

TASK [ansible-letsencrypt : Install python depends] ****************************
task path: /home/ldap/.ansible/roles/ansible-letsencrypt/tasks/install-with-pip.yml:18
[DEPRECATION WARNING]: Invoking "pip" only once while using a loop via
squash_actions is deprecated. Instead of using a loop to supply multiple items
and specifying `name: "{{ item }}"`, please use `name: ['setuptools', 'pip']`
and remove the loop. This feature will be removed in version 2.11. Deprecation
warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1588133330.36-83070354983411 `" && echo ansible-tmp-1588133330.36-83070354983411="` echo /root/.ansible/tmp/ansible-tmp-1588133330.36-83070354983411 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/packaging/language/pip.py
<127.0.0.1> PUT /home/ldap/.ansible/tmp/ansible-local-20787S7mu_g/tmpI97JUz TO /root/.ansible/tmp/ansible-tmp-1588133330.36-83070354983411/AnsiballZ_pip.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1588133330.36-83070354983411/ /root/.ansible/tmp/ansible-tmp-1588133330.36-83070354983411/AnsiballZ_pip.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1588133330.36-83070354983411/AnsiballZ_pip.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1588133330.36-83070354983411/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => (item=[u'setuptools', u'pip']) => {
    "ansible_loop_var": "item",
    "changed": false,
    "cmd": [
        "/usr/local/share/letsencrypt/env/bin/pip2",
        "install",
        "-U",
        "setuptools",
        "pip"
    ],
    "invocation": {
        "module_args": {
            "chdir": null,
            "editable": false,
            "executable": null,
            "extra_args": null,
            "name": [
                "setuptools",
                "pip"
            ],
            "requirements": null,
            "state": "latest",
            "umask": null,
            "version": null,
            "virtualenv": "/usr/local/share/letsencrypt/env",
            "virtualenv_command": "virtualenv",
            "virtualenv_python": "python2",
            "virtualenv_site_packages": false
        }
    },
    "item": [
        "setuptools",
        "pip"
    ],
    "name": [
        "setuptools",
        "pip"
    ],
    "requirements": null,
    "state": "latest",
    "stderr": "DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support\\nWARNING: The directory '/home/ldap/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.\n",
    "stderr_lines": [
        "DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support&quot;,
        "WARNING: The directory '/home/ldap/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag."
    ],
    "stdout": "Requirement already up-to-date: setuptools in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (44.1.0)\nRequirement already up-to-date: pip in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (20.1)\n",
    "stdout_lines": [
        "Requirement already up-to-date: setuptools in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (44.1.0)",
        "Requirement already up-to-date: pip in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (20.1)"
    ],
    "version": null,
    "virtualenv": "/usr/local/share/letsencrypt/env"
}

TASK [ansible-letsencrypt : Install pycparser] *********************************
task path: /home/ldap/.ansible/roles/ansible-letsencrypt/tasks/install-with-pip.yml:31
skipping: [localhost] => {
    "changed": false,
    "skip_reason": "Conditional result was False"
}

TASK [ansible-letsencrypt : More python depends] *******************************
task path: /home/ldap/.ansible/roles/ansible-letsencrypt/tasks/install-with-pip.yml:38
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1588133334.46-85818371768532 `" && echo ansible-tmp-1588133334.46-85818371768532="` echo /root/.ansible/tmp/ansible-tmp-1588133334.46-85818371768532 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/packaging/language/pip.py
<127.0.0.1> PUT /home/ldap/.ansible/tmp/ansible-local-20787S7mu_g/tmpIT01fz TO /root/.ansible/tmp/ansible-tmp-1588133334.46-85818371768532/AnsiballZ_pip.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1588133334.46-85818371768532/ /root/.ansible/tmp/ansible-tmp-1588133334.46-85818371768532/AnsiballZ_pip.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1588133334.46-85818371768532/AnsiballZ_pip.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1588133334.46-85818371768532/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => {
    "changed": false,
    "cmd": [
        "/usr/local/share/letsencrypt/env/bin/pip2",
        "install",
        "-U",
        "letsencrypt"
    ],
    "invocation": {
        "module_args": {
            "chdir": null,
            "editable": false,
            "executable": null,
            "extra_args": null,
            "name": [
                "letsencrypt"
            ],
            "requirements": null,
            "state": "latest",
            "umask": null,
            "version": null,
            "virtualenv": "/usr/local/share/letsencrypt/env",
            "virtualenv_command": "virtualenv",
            "virtualenv_python": null,
            "virtualenv_site_packages": false
        }
    },
    "name": [
        "letsencrypt"
    ],
    "requirements": null,
    "state": "latest",
    "stderr": "DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support\\nWARNING: The directory '/home/ldap/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.\n",
    "stderr_lines": [
        "DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support&quot;,
        "WARNING: The directory '/home/ldap/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag."
    ],
    "stdout": "Requirement already up-to-date: letsencrypt in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (0.7.0)\nRequirement already satisfied, skipping upgrade: certbot in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from letsencrypt) (1.3.0)\nRequirement already satisfied, skipping upgrade: mock in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (3.0.5)\nRequirement already satisfied, skipping upgrade: distro>=1.0.1 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (1.5.0)\nRequirement already satisfied, skipping upgrade: parsedatetime>=1.3 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (2.5)\nRequirement already satisfied, skipping upgrade: josepy>=1.1.0 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (1.3.0)\nRequirement already satisfied, skipping upgrade: ConfigArgParse>=0.9.3 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (1.2.3)\nRequirement already satisfied, skipping upgrade: zope.interface in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (5.1.0)\nRequirement already satisfied, skipping upgrade: acme>=0.40.0 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (1.3.0)\nRequirement already satisfied, skipping upgrade: pyrfc3339 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (1.1)\nRequirement already satisfied, skipping upgrade: zope.component in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (4.6.1)\nRequirement already satisfied, skipping upgrade: configobj in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (5.0.6)\nRequirement already satisfied, skipping upgrade: setuptools in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (44.1.0)\nRequirement already satisfied, skipping upgrade: cryptography>=1.2.3 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (2.9.2)\nRequirement already satisfied, skipping upgrade: pytz in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (2020.1)\nRequirement already satisfied, skipping upgrade: funcsigs>=1; python_version < \"3.3\" in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from mock->certbot->letsencrypt) (1.0.2)\nRequirement already satisfied, skipping upgrade: six in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from mock->certbot->letsencrypt) (1.14.0)\nRequirement already satisfied, skipping upgrade: PyOpenSSL>=0.13 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from josepy>=1.1.0->certbot->letsencrypt) (19.1.0)\nRequirement already satisfied, skipping upgrade: requests[security]>=2.6.0 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from acme>=0.40.0->certbot->letsencrypt) (2.23.0)\nRequirement already satisfied, skipping upgrade: requests-toolbelt>=0.3.0 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from acme>=0.40.0->certbot->letsencrypt) (0.9.1)\nRequirement already satisfied, skipping upgrade: zope.hookable>=4.2.0 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from zope.component->certbot->letsencrypt) (5.0.1)\nRequirement already satisfied, skipping upgrade: zope.deferredimport>=4.2.1 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from zope.component->certbot->letsencrypt) (4.3.1)\nRequirement already satisfied, skipping upgrade: zope.event in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from zope.component->certbot->letsencrypt) (4.4)\nRequirement already satisfied, skipping upgrade: zope.deprecation>=4.3.0 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from zope.component->certbot->letsencrypt) (4.4.0)\nRequirement already satisfied, skipping upgrade: ipaddress; python_version < \"3\" in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from cryptography>=1.2.3->certbot->letsencrypt) (1.0.23)\nRequirement already satisfied, skipping upgrade: cffi!=1.11.3,>=1.8 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from cryptography>=1.2.3->certbot->letsencrypt) (1.14.0)\nRequirement already satisfied, skipping upgrade: enum34; python_version < \"3\" in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from cryptography>=1.2.3->certbot->letsencrypt) (1.1.10)\nRequirement already satisfied, skipping upgrade: certifi>=2017.4.17 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from requests[security]>=2.6.0->acme>=0.40.0->certbot->letsencrypt) (2020.4.5.1)\nRequirement already satisfied, skipping upgrade: idna<3,>=2.5 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from requests[security]>=2.6.0->acme>=0.40.0->certbot->letsencrypt) (2.9)\nRequirement already satisfied, skipping upgrade: chardet<4,>=3.0.2 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from requests[security]>=2.6.0->acme>=0.40.0->certbot->letsencrypt) (3.0.4)\nRequirement already satisfied, skipping upgrade: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from requests[security]>=2.6.0->acme>=0.40.0->certbot->letsencrypt) (1.25.9)\nRequirement already satisfied, skipping upgrade: zope.proxy in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from zope.deferredimport>=4.2.1->zope.component->certbot->letsencrypt) (4.3.5)\nRequirement already satisfied, skipping upgrade: pycparser in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from cffi!=1.11.3,>=1.8->cryptography>=1.2.3->certbot->letsencrypt) (2.20)\n",
    "stdout_lines": [
        "Requirement already up-to-date: letsencrypt in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (0.7.0)",
        "Requirement already satisfied, skipping upgrade: certbot in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from letsencrypt) (1.3.0)",
        "Requirement already satisfied, skipping upgrade: mock in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (3.0.5)",
        "Requirement already satisfied, skipping upgrade: distro>=1.0.1 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (1.5.0)",
        "Requirement already satisfied, skipping upgrade: parsedatetime>=1.3 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (2.5)",
        "Requirement already satisfied, skipping upgrade: josepy>=1.1.0 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (1.3.0)",
        "Requirement already satisfied, skipping upgrade: ConfigArgParse>=0.9.3 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (1.2.3)",
        "Requirement already satisfied, skipping upgrade: zope.interface in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (5.1.0)",
        "Requirement already satisfied, skipping upgrade: acme>=0.40.0 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (1.3.0)",
        "Requirement already satisfied, skipping upgrade: pyrfc3339 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (1.1)",
        "Requirement already satisfied, skipping upgrade: zope.component in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (4.6.1)",
        "Requirement already satisfied, skipping upgrade: configobj in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (5.0.6)",
        "Requirement already satisfied, skipping upgrade: setuptools in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (44.1.0)",
        "Requirement already satisfied, skipping upgrade: cryptography>=1.2.3 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (2.9.2)",
        "Requirement already satisfied, skipping upgrade: pytz in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from certbot->letsencrypt) (2020.1)",
        "Requirement already satisfied, skipping upgrade: funcsigs>=1; python_version < \"3.3\" in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from mock->certbot->letsencrypt) (1.0.2)",
        "Requirement already satisfied, skipping upgrade: six in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from mock->certbot->letsencrypt) (1.14.0)",
        "Requirement already satisfied, skipping upgrade: PyOpenSSL>=0.13 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from josepy>=1.1.0->certbot->letsencrypt) (19.1.0)",
        "Requirement already satisfied, skipping upgrade: requests[security]>=2.6.0 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from acme>=0.40.0->certbot->letsencrypt) (2.23.0)",
        "Requirement already satisfied, skipping upgrade: requests-toolbelt>=0.3.0 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from acme>=0.40.0->certbot->letsencrypt) (0.9.1)",
        "Requirement already satisfied, skipping upgrade: zope.hookable>=4.2.0 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from zope.component->certbot->letsencrypt) (5.0.1)",
        "Requirement already satisfied, skipping upgrade: zope.deferredimport>=4.2.1 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from zope.component->certbot->letsencrypt) (4.3.1)",
        "Requirement already satisfied, skipping upgrade: zope.event in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from zope.component->certbot->letsencrypt) (4.4)",
        "Requirement already satisfied, skipping upgrade: zope.deprecation>=4.3.0 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from zope.component->certbot->letsencrypt) (4.4.0)",
        "Requirement already satisfied, skipping upgrade: ipaddress; python_version < \"3\" in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from cryptography>=1.2.3->certbot->letsencrypt) (1.0.23)",
        "Requirement already satisfied, skipping upgrade: cffi!=1.11.3,>=1.8 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from cryptography>=1.2.3->certbot->letsencrypt) (1.14.0)",
        "Requirement already satisfied, skipping upgrade: enum34; python_version < \"3\" in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from cryptography>=1.2.3->certbot->letsencrypt) (1.1.10)",
        "Requirement already satisfied, skipping upgrade: certifi>=2017.4.17 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from requests[security]>=2.6.0->acme>=0.40.0->certbot->letsencrypt) (2020.4.5.1)",
        "Requirement already satisfied, skipping upgrade: idna<3,>=2.5 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from requests[security]>=2.6.0->acme>=0.40.0->certbot->letsencrypt) (2.9)",
        "Requirement already satisfied, skipping upgrade: chardet<4,>=3.0.2 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from requests[security]>=2.6.0->acme>=0.40.0->certbot->letsencrypt) (3.0.4)",
        "Requirement already satisfied, skipping upgrade: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from requests[security]>=2.6.0->acme>=0.40.0->certbot->letsencrypt) (1.25.9)",
        "Requirement already satisfied, skipping upgrade: zope.proxy in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from zope.deferredimport>=4.2.1->zope.component->certbot->letsencrypt) (4.3.5)",
        "Requirement already satisfied, skipping upgrade: pycparser in /usr/local/share/letsencrypt/env/lib/python2.7/site-packages (from cffi!=1.11.3,>=1.8->cryptography>=1.2.3->certbot->letsencrypt) (2.20)"
    ],
    "version": null,
    "virtualenv": "/usr/local/share/letsencrypt/env"
}

TASK [ansible-letsencrypt : Ensure webroot exists] *****************************
task path: /home/ldap/.ansible/roles/ansible-letsencrypt/tasks/main.yml:32
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1588133336.04-48227530343713 `" && echo ansible-tmp-1588133336.04-48227530343713="` echo /root/.ansible/tmp/ansible-tmp-1588133336.04-48227530343713 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/files/file.py
<127.0.0.1> PUT /home/ldap/.ansible/tmp/ansible-local-20787S7mu_g/tmp8b_51e TO /root/.ansible/tmp/ansible-tmp-1588133336.04-48227530343713/AnsiballZ_file.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1588133336.04-48227530343713/ /root/.ansible/tmp/ansible-tmp-1588133336.04-48227530343713/AnsiballZ_file.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1588133336.04-48227530343713/AnsiballZ_file.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1588133336.04-48227530343713/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => {
    "changed": false,
    "diff": {
        "after": {
            "path": "/var/www"
        },
        "before": {
            "path": "/var/www"
        }
    },
    "gid": 0,
    "group": "root",
    "invocation": {
        "module_args": {
            "_diff_peek": null,
            "_original_basename": null,
            "access_time": null,
            "access_time_format": "%Y%m%d%H%M.%S",
            "attributes": null,
            "backup": null,
            "content": null,
            "delimiter": null,
            "directory_mode": null,
            "follow": true,
            "force": false,
            "group": null,
            "mode": null,
            "modification_time": null,
            "modification_time_format": "%Y%m%d%H%M.%S",
            "owner": null,
            "path": "/var/www",
            "recurse": false,
            "regexp": null,
            "remote_src": null,
            "selevel": null,
            "serole": null,
            "setype": null,
            "seuser": null,
            "src": null,
            "state": "directory",
            "unsafe_writes": null
        }
    },
    "mode": "0755",
    "owner": "root",
    "path": "/var/www",
    "size": 4096,
    "state": "directory",
    "uid": 0
}

TASK [ansible-letsencrypt : Attempt to get the certificate using the webroot authenticator] ***
task path: /home/ldap/.ansible/roles/ansible-letsencrypt/tasks/main.yml:39
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1588133336.52-137574221729358 `" && echo ansible-tmp-1588133336.52-137574221729358="` echo /root/.ansible/tmp/ansible-tmp-1588133336.52-137574221729358 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/commands/command.py
<127.0.0.1> PUT /home/ldap/.ansible/tmp/ansible-local-20787S7mu_g/tmpUOg1LP TO /root/.ansible/tmp/ansible-tmp-1588133336.52-137574221729358/AnsiballZ_command.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1588133336.52-137574221729358/ /root/.ansible/tmp/ansible-tmp-1588133336.52-137574221729358/AnsiballZ_command.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1588133336.52-137574221729358/AnsiballZ_command.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1588133336.52-137574221729358/ > /dev/null 2>&1 && sleep 0'
fatal: [localhost]: FAILED! => {
    "changed": true,
    "cmd": [
        "/usr/local/share/letsencrypt/env/bin/letsencrypt",
        "-n",
        "--agree-tos",
        "--text",
        "-d",
        "linux",
        "--email",
        "webmaster@",
        "--expand",
        "-a",
        "webroot",
        "--webroot-path",
        "/var/www",
        "certonly"
    ],
    "delta": "0:00:01.748526",
    "end": "2020-04-29 12:08:58.890082",
    "invocation": {
        "module_args": {
            "_raw_params": "/usr/local/share/letsencrypt/env/bin/letsencrypt -n --agree-tos --text -d linux --email webmaster@ --expand -a webroot --webroot-path /var/www certonly",
            "_uses_shell": false,
            "argv": null,
            "chdir": null,
            "creates": "/etc/letsencrypt/live/linux",
            "executable": null,
            "removes": null,
            "stdin": null,
            "stdin_add_newline": true,
            "strip_empty_ends": true,
            "warn": true
        }
    },
    "msg": "non-zero return code",
    "rc": 1,
    "start": "2020-04-29 12:08:57.141556",
    "stderr": "Saving debug log to /var/log/letsencrypt/letsencrypt.log\nPlugins selected: Authenticator webroot, Installer None\nUnable to register an account with ACME server",
    "stderr_lines": [
        "Saving debug log to /var/log/letsencrypt/letsencrypt.log",
        "Plugins selected: Authenticator webroot, Installer None",
        "Unable to register an account with ACME server"
    ],
    "stdout": "",
    "stdout_lines":
}
...ignoring

TASK [ansible-letsencrypt : Attempt to get the certificate using the standalone authenticator (in case eg the webserver isn't running yet)] ***
task path: /home/ldap/.ansible/roles/ansible-letsencrypt/tasks/main.yml:47
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1588133339.01-17069452385863 `" && echo ansible-tmp-1588133339.01-17069452385863="` echo /root/.ansible/tmp/ansible-tmp-1588133339.01-17069452385863 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/commands/command.py
<127.0.0.1> PUT /home/ldap/.ansible/tmp/ansible-local-20787S7mu_g/tmpFxWJv9 TO /root/.ansible/tmp/ansible-tmp-1588133339.01-17069452385863/AnsiballZ_command.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1588133339.01-17069452385863/ /root/.ansible/tmp/ansible-tmp-1588133339.01-17069452385863/AnsiballZ_command.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1588133339.01-17069452385863/AnsiballZ_command.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1588133339.01-17069452385863/ > /dev/null 2>&1 && sleep 0'
fatal: [localhost]: FAILED! => {
    "changed": true,
    "cmd": [
        "/usr/local/share/letsencrypt/env/bin/letsencrypt",
        "-n",
        "--agree-tos",
        "--text",
        "-d",
        "linux",
        "--email",
        "webmaster@",
        "--expand",
        "-a",
        "standalone",
        "auth"
    ],
    "delta": "0:00:01.709014",
    "end": "2020-04-29 12:09:00.827262",
    "invocation": {
        "module_args": {
            "_raw_params": "/usr/local/share/letsencrypt/env/bin/letsencrypt -n --agree-tos --text -d linux --email webmaster@ --expand -a standalone auth ",
            "_uses_shell": false,
            "argv": null,
            "chdir": null,
            "creates": "/etc/letsencrypt/live/linux",
            "executable": null,
            "removes": null,
            "stdin": null,
            "stdin_add_newline": true,
            "strip_empty_ends": true,
            "warn": true
        }
    },
    "msg": "non-zero return code",
    "rc": 1,
    "start": "2020-04-29 12:08:59.118248",
    "stderr": "Saving debug log to /var/log/letsencrypt/letsencrypt.log\nPlugins selected: Authenticator standalone, Installer None\nUnable to register an account with ACME server",
    "stderr_lines": [
        "Saving debug log to /var/log/letsencrypt/letsencrypt.log",
        "Plugins selected: Authenticator standalone, Installer None",
        "Unable to register an account with ACME server"
    ],
    "stdout": "",
    "stdout_lines":
}

PLAY RECAP *********************************************************************
localhost : ok=10 changed=1 unreachable=0 failed=1 skipped=5 rescued=0 ignored=1

BR
Sandy

Hi Racke:

For your reference.

So apparently the complete role is skipped. Please show also your playbook, especially the roles: part.

Regards
         Racke

Playbook

- name: Add jessie backports
  apt_repository:
    repo: deb http://ftp.debian.org/debian jessie-backports main contrib non-free
    state: present
    filename: 'backports'
  register: jbp_added
  become: yes

- name: update the apt cache
  apt: update_cache=yes cache_valid_time=7200
  become: yes

# if jessie-backports has been added we should update the cache
- name: force update the apt cache
  apt: update_cache=yes
  when: jbp_added.changed
  become: yes

- name: install certbot from backports
  apt: pkg={{item}} default_release=jessie-backports state=latest
  with_items:
    - certbot
  become: yes

- name: change the path to letsencrypt
  set_fact:
    letsencrypt_path: "/usr/bin/letsencrypt"
- name: update the apt cache
  apt: update_cache=yes cache_valid_time=7200
  become: yes

- name: add certbot apt ppa repository
  apt_repository:
    repo: "ppa:certbot/certbot"
  become: yes

- name: install certbot ubuntu
  apt: pkg={{item}} state=latest
  with_items:
    - certbot
  become: yes

- name: change the path to letsencrypt
  set_fact:
    letsencrypt_path: "/usr/bin/letsencrypt"

BR
Sandy

Playbook

- name: Add jessie backports
  apt_repository:
    repo: deb http://ftp.debian.org/debian jessie-backports main contrib non-free
    state: present
    filename: 'backports'
  register: jbp_added
  become: yes

- name: update the apt cache
  apt: update_cache=yes cache_valid_time=7200
  become: yes

# if jessie-backports has been added we should update the cache
- name: force update the apt cache
  apt: update_cache=yes
  when: jbp_added.changed
  become: yes

- name: install certbot from backports
  apt: pkg={{item}} default_release=jessie-backports state=latest
  with_items:
    - certbot
  become: yes

- name: change the path to letsencrypt
  set_fact:
    letsencrypt_path: "/usr/bin/letsencrypt"
- name: update the apt cache
  apt: update_cache=yes cache_valid_time=7200
  become: yes

- name: add certbot apt ppa repository
  apt_repository:
    repo: "ppa:certbot/certbot"
  become: yes

- name: install certbot ubuntu
  apt: pkg={{item}} state=latest
  with_items:
    - certbot
  become: yes

- name: change the path to letsencrypt
  set_fact:
    letsencrypt_path: "/usr/bin/letsencrypt"

BR
Sandy

That doesn't match the output you provided. Waste of my time if you ask me.

Regards
       Racke

Sorry I not any idea

This main.yml

  - apt: update_cache=yes cache_valid_time=3600
    become: yes
    when: ansible_pkg_mgr == "apt"
    tags: install

  - include_vars: "{{ item }}"
    with_first_found:
      - "../vars/{{ ansible_distribution }}-{{ ansible_distribution_major_version | int }}.yml"
      - "../vars/{{ ansible_distribution }}.yml"
      - "../vars/{{ ansible_os_family }}.yml"
      - "../vars/default.yml"
    when: virtualenv_package_name is not defined
    tags: install

  - name: install certbot (Debian jessie)
    include: debian-jessie.yml
    when: ansible_distribution == "Debian" and ansible_distribution_release == "jessie"

  - name: install certbot (Debian stretch or buster)
    include: debian-stretch-buster.yml
    when: ansible_distribution == "Debian" and (ansible_distribution_release == "stretch" or ansible_distribution_release == "buster")

  - name: install certbot (Ubuntu Xenial)
    include: ubuntu-xenial.yml
    when: ansible_distribution == "Ubuntu" and ansible_distribution_release == "xenial"

  - name: install certbot (using pip)
    include: install-with-pip.yml
    when: ansible_distribution != "Debian" and (ansible_distribution != "Ubuntu" or ansible_distribution_release != "xenial")

  - name: Ensure webroot exists
    file:
      path: "{{ letsencrypt_webroot_path }}"
      state: directory
      follow: yes
    become: yes

  - name: Attempt to get the certificate using the webroot authenticator
    command: "{{ letsencrypt_command }} -a webroot --webroot-path {{ letsencrypt_webroot_path }} certonly"
    become: yes
    args:
      creates: "/etc/letsencrypt/live/{{ letsencrypt_cert_domains[0] }}"
    when: letsencrypt_authenticator == "webroot"
    ignore_errors: True

  - name: Attempt to get the certificate using the standalone authenticator (in case eg the webserver isn't running yet)
    command: "{{ letsencrypt_command }} -a standalone auth {{ letsencrypt_standalone_command_args }}"
    become: yes
    args:
      creates: "/etc/letsencrypt/live/{{ letsencrypt_cert_domains[0] }}"

  - name: Fix the renewal file
    ini_file:
      section: renewalparams
      option: "{{ item.key }}"
      value: "{{ item.value }}"
      dest: "/etc/letsencrypt/renewal/{{ letsencrypt_cert_domains[0] }}.conf"
    become: yes
    with_dict:
      os_packages_only: False
      verb: certonly
      noninteractive_mode: False
      uir: False
      hsts: False
      authenticator: '{{ letsencrypt_authenticator }}'

  - name: Fix the webroot map in the renewal file
    ini_file:
      section: "[webroot_map]"
      option: "{{ item }}"
      value: "{{ letsencrypt_webroot_path }}"
      dest: "/etc/letsencrypt/renewal/{{ letsencrypt_cert_domains[0] }}.conf"
    become: yes
    with_items: "{{ letsencrypt_cert_domains }}"

  - name: Install renewal cron
    become: yes
    cron:
      name: "Let's Encrypt Renewal"
      day: "{{ letsencrypt_renewal_frequency.day }}"
      hour: "{{ letsencrypt_renewal_frequency.hour }}"
      minute: "{{ letsencrypt_renewal_frequency.minute }}"
      job: "{{letsencrypt_path}} renew --quiet {{ letsencrypt_renewal_command_args }}"

  - name: Create directory for `ssl_certificate` and `ssl_certificate_key`
    file:
      path: '{{ item }}'
      state: directory
      recurse: yes
    when: ssl_certificate is defined and ssl_certificate_key is defined
    with_items:
      - "{{ ssl_certificate|dirname }}"
      - "{{ ssl_certificate_key|dirname }}"

  - name: Symlink certificates to `ssl_certificate` and `ssl_certificate_key`
    file:
      src: '{{ item.src }}'
      dest: '{{ item.dest }}'
      state: link
    when: ssl_certificate is defined and ssl_certificate_key is defined
    with_items:
      - src: /etc/letsencrypt/live/{{ letsencrypt_cert_domains[0] }}/fullchain.pem
        dest: "{{ssl_certificate}}"
      - src: /etc/letsencrypt/live/{{ letsencrypt_cert_domains[0] }}/privkey.pem
        dest: "{{ssl_certificate_key}}"
BR
Sandy

Sorry I not any idea

The when: condition doesn't match. So do your homework.

Regards
         Racke