Ansible刚安装完后执行报错

1.

"msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this.  Please add this host's fingerprint to your known_hosts file to manage this host."

解决:

打开ansible.cfg文件位置,/etc/ansible/ansible.cfg

去掉注释即可
# uncomment this to disable SSH key host checking
host_key_checking = False

2.

[WARNING]: Platform linux on host ai_host_1 is using the discovered Python interpreter at /usr/bin/python, but future
installation of another Python interpreter could change this. See
https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information. 

解决:

在ansible.cfg的[defaults]部分添加

interpreter_python = auto_legacy_silent

### 解决方案 在使用 `ansible-playbook` 安装 MySQL 时遇到错误,可能的原因有很多。以下是常见的几种原因及其对应的解决方案: #### 1. 配置文件缺失或不正确 如果 `/srv/httpd.conf` 文件不存在,则可能会导致执行失败[^1]。虽然此问题主要涉及 Apache 的配置,但在类似的场景下,确保所有必需的配置文件存在是非常重要的。 对于 MySQL 的安装,通常需要创建相应的角色目录结构并编写正确的 YAML 文件。例如,在以下命令中,如果没有按照标准的角色结构创建必要的子目录和文件,可能导致错误: ```bash [root@Ansible ~]# touch /etc/ansible/roles/mysql/{defaults,vars,tasks,meta,handlers}/main.yml ``` 上述命令用于初始化 MySQL 角色所需的文件夹结构。如果这些文件夹中的某些部分缺少或者命名不符合 Ansible 的约定俗成(如必须命名为 `main.yml`),则可能导致任务无法正常加载[^2]。 #### 2. Playbook 编写不当 Playbook 是由一个或多个 plays 构成的任务清单。每个 play 负责将特定组内的主机映射到预定义的角色上。下面是一个典型的 MySQL 安装 playbook 示例[^3]: ```yaml --- - hosts: dbservers remote_user: root roles: - mysql ``` 在此基础上,还需要进一步细化 tasks 和 handlers 来成具体的安装操作。例如,可以通过调用模块来实现软件包管理和服务控制等功能: ```yaml tasks: - name: Ensure MySQL is installed yum: name: mariadb-server state: present - name: Start and enable MySQL service service: name: mariadb state: started enabled: yes ``` 以上代码片段展示了如何利用 YUM 模块安装 MariaDB (作为 MySQL 替代品),以及启动服务的相关设置。 #### 3. Shell 命令重复执行引发冲突 有时为了简化流程,开发者会在同一个 task 下多次运行相同的 shell 或 command 指令。然而这种做法容易引起不必要的副作用甚至逻辑混乱。例如引用中的例子显示了四次几乎全一样的命令被执行[^4]: ```yaml shell: echo '10.93.102.200 test.wei.com' >> /etc/hosts ``` 这不仅增加了冗余度还提高了潜在风险——当目标路径权限受限或其他异常情况发生时,整个过程都可能中断从而造成最终状态不确定的结果。 因此建议改用更高效的方式处理此类需求,比如借助 lineinfile 模块代替原始 shell 方法更新配置项: ```yaml - name: Add hostname entry to /etc/hosts lineinfile: path: /etc/hosts regexp: '^10\.93\.102\.200' line: '10.93.102.200 test.wei.com' state: present ``` 这样既保证了一致性和可维护性又减少了人为失误的可能性。 --- ### 总结 综上所述,要解决 `ansible-playbook` 在安装 MySQL 过程中存在的各种问题可以从以下几个方面入手:确认所有的前置条件均已满足;仔细检查所使用的剧本语法是否准确无误;合理规划各项具体活动之间的关系以避免相互干扰等情况的发生。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值