【发布时间】:2013-05-02 21:32:48
【问题描述】:
我想在 AWS 上设置一个 MySQL 服务器,使用 Ansible 进行配置管理。
我正在使用来自 Amazon (ami-3275ee5b) 的默认 AMI,它使用 yum 进行包管理。
当执行下面的剧本时,一切顺利。但是当我第二次运行它时,任务Configure the root credentials 失败了,因为 MySQL 的旧密码不再匹配,因为它已在我上次运行此 Playbook 时更新。
这使得 Playbook 不是幂等的,我不喜欢这样。我希望能够多次运行 Playbook。
- hosts: staging_mysql
user: ec2-user
sudo: yes
tasks:
- name: Install MySQL
action: yum name=$item
with_items:
- MySQL-python
- mysql
- mysql-server
- name: Start the MySQL service
action: service name=mysqld state=started
- name: Configure the root credentials
action: command mysqladmin -u root -p $mysql_root_password
解决此问题的最佳方法是什么,这意味着使 Playbook 具有幂等性?提前致谢!
【问题讨论】:
-
下面的答案似乎已经过时了。使用在 Ansible 1.3 中添加到 mysql_user 的“check_implicit_admin”标志。在设置密码时将其设置为 true 对我有用。
标签: mysql command-line amazon-web-services amazon-ec2 ansible