bash – ansible回答mysql_secure_installation

我无法实现如何编写任务,即回答 mysql_secure_installation脚本问题.

我只有

shell: MysqL_secure_installation  <<< '1111' executable=/bin/bash

并没有关于如何继续回答的想法.
解决这个问题的最佳方法是什么?提前致谢!

我认为你最好的办法是编写一个将重现MysqL_secure_installation脚本的剧本(或更好的,改变你的MysqL角色).有几个原因 :

>每次运行你的剧本时,剧本总会返回’已更改’,这不是你想要的
>编写任务更灵活:您可以根据设置添加,删除,更改和调整您想要执行的操作
>你可以在这个过程中学习

基本上,MysqL_secure_installation执行此操作:

>设置root密码
>删除匿名用户
>删除根远程访问
>删除测试数据库

假设你已经设置了MysqL_root_password,并添加了python-MysqLdb,如下所示:

- name: Adds Python MysqL support on Debian/Ubuntu
      apt: pkg="python-MysqLdb" state=present
      when: ansible_os_family == 'Debian'

    - name: Adds Python MysqL support on RedHat/CentOS
      yum: name=MysqL-python state=present
      when: ansible_os_family == 'RedHat'

这可以这样完成:

>设置root密码

- name: Sets the root password 
  MysqL_user: user=root password="{{ MysqL_root_password }}" host=localhost

>删除匿名用户

- name: Deletes anonymous MysqL server user for ansible_fqdn
  MysqL_user: user="" host="{{ ansible_fqdn }}" state="absent"

- name: Deletes anonymous MysqL server user for localhost
  MysqL_user: user="" state="absent"

>删除根远程访问

- name: Secures the MysqL root user for IPV6 localhost (::1)
  MysqL_user: user="root" password="{{ MysqL_root_password }}" host="::1"

- name: Secures the MysqL root user for IPV4 localhost (127.0.0.1)
  MysqL_user: user="root" password="{{ MysqL_root_password }}" host="127.0.0.1"

- name: Secures the MysqL root user for localhost domain (localhost)
  MysqL_user: user="root" password="{{ MysqL_root_password }}" host="localhost"

- name: Secures the MysqL root user for server_hostname domain
  MysqL_user: user="root" password="{{ MysqL_root_password }}" host="{{ ansible_fqdn }}"

>删除测试数据库

- name: Removes the MysqL test database
  MysqL_db: db=test state=absent

这应该做到这一点.请注意,我快速浏览了一下系统中的MysqL_secure_installation.我可能跳过了某些内容,或者其他版本中可能还有其他步骤. YMMV!

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...