使用Ansible Playbook安装Tomcat遇URL控制字符错误求助
解决Ansible Playbook安装Tomcat时的URL控制字符错误
错误原因
错误提示URL can't contain control characters. '/apache/tomcat/tomcat-10/v10.0.4/bin/apache-tomcat- 10.0.4.tar.gz' (found at least ' ')明确指出:你的Tomcat下载URL中包含空格(属于控制字符),导致Ansible无法解析该URL。
查看你的Playbook配置,问题出在vars段的url变量里:apache-tomcat-和10.0.4之间多了一个不必要的空格。
解决方案
1. 修正URL变量
删除URL中的空格,修正后的变量如下:
vars: - url: "https://mirrors.estointernet.in/apache/tomcat/tomcat-10/v10.0.4/bin/apache-tomcat-10.0.4.tar.gz"
2. 补全缺失的任务参数
你的Playbook中还有两处可以优化的地方,避免后续潜在问题:
- 第一个
apt更新任务缺少必要参数,补充后确保系统包列表正确更新:
- name: Update the System Packages apt: update_cache: yes upgrade: dist state: present
- 最后一个修改Tomcat目录权限的任务,添加
recurse: yes参数,确保目录下所有文件/子目录的权限都被修改:
- name: Change ownership of tomcat directory file: path: /opt/tomcat10 owner: tomcat group: tomcat recurse: yes
修正后的完整Playbook
--- - name: Install Apache Tomcat10 using ansible hosts: localhost become: true vars: - url: "https://mirrors.estointernet.in/apache/tomcat/tomcat-10/v10.0.4/bin/apache-tomcat-10.0.4.tar.gz" tasks: - name: Update the System Packages apt: update_cache: yes upgrade: dist state: present - name: Create a Tomcat User user: name: tomcat - name: Create a Tomcat Group group: name: tomcat - name: Install JAVA apt: name: default-jdk state: present - name: Create a Tomcat Directory file: path: /opt/tomcat10 owner: tomcat group: tomcat mode: 755 recurse: yes - name: download & unarchive tomcat10 unarchive: src: "{{url}}" dest: /opt/tomcat10 remote_src: yes extra_opts: [--strip-components=1] - name: Change ownership of tomcat directory file: path: /opt/tomcat10 owner: tomcat group: tomcat recurse: yes
内容的提问来源于stack exchange,提问作者Ritika
相关产品推荐
相关产品推荐

