def execute(self):
        """
        Execute the actions necessary to perform a `molecule init template` and
        returns None.

        :return: None
        """

        role_name = self._command_args['role_name']
        url = self._command_args['url']
        no_input = self._command_args['no_input']
        role_directory = os.getcwd()
        msg = 'Initializing new role {}...'.format(role_name)
        LOG.info(msg)

        if os.path.isdir(role_name):
            msg = ('The directory {} exists. '
                   'Cannot create new role.').format(role_name)
            util.sysexit_with_message(msg)

        cookiecutter.main.cookiecutter(
            url,
            extra_context=self._command_args,
            no_input=no_input,
        )

        role_directory = os.path.join(os.getcwd(), role_name)
        msg = 'Initialized role in {} successfully.'.format(role_directory)
        LOG.success(msg)