SuperAPI AI 工具集

ansible-convert

通用与其它

查看项目

更新于 10-16 02:32

技能介绍

用途:帮助把 shell 脚本、手动服务器搭建流程、bash 自动化或 Dockerfile 的 RUN 命令迁移为 Ansible playbook。核心原则是不用 shell 模块包裹原命令,而是找到能达成相同终态的 Ansible 模块;目标是幂等,即运行两次结果一致。

主要能力:提供 shell 命令到模块的对应关系,例如 mkdir -p 对应 ansible.builtin.file(state: directory),cp 对应 copy,带变量的 cp 对应 template(.j2),rm -rf 对应 file(state: absent),chmod/chown 合并进 file/copy/template 的 mode、owner、group,apt-get install 对应 apt,yum install 对应 yum 或跨平台 package,pip install 对应 pip,useradd 对应 user,systemctl start 对应 service(state: started),enable 对应 enabled,curl -O 对应 get_url,tar -xzf 对应 unarchive,echo >> 对应 lineinfile,cat > 对应 copy 的 content。还说明条件(when: ansible_os_family == "Debian")和循环(loop)的改写方式。

使用方式:通读脚本并识别主要阶段,逐条命令映射到模块,将硬编码值提取为变量(版本、路径、用户名、端口,放入 defaults/main.yml 便于覆盖),按依赖顺序排列任务(目录先于文件),为服务重启添加 handler,用 --check --diff 测试并确认二次运行无变更。仅在无对应模块时使用 command 或 shell,并加上变更检测,例如:

  • name: Run custom installer ansible.builtin.shell: /opt/app/install.sh args: creates: /opt/app/.installed register: install_result changed_when: "'Installed' in install_result.stdout" failed_when: install_result.rc != 0 and 'already installed' not in install_result.stderr

限制:本资料未提供安装方式、收费信息、适用平台与版本要求。