无法使用ansible创建mysql数据库

时间:2019-01-30 10:42:36

标签: mysql database ansible ansible-2.x

  

我正在编写Ansible剧本以在MySQL中创建数据库。我在用   Ansible 2.7版。无法识别问题/错误。我的s   CentOS Linux版本7.6.1810(核心)中的主机系统。

     

我在ansible控制器计算机中安装了PyMySQL。的MySQL   traget Windows机器上的版本是:Win64上的mysql Ver 8.0.14   x86_64(MySQL Community Server-GPL)。

     

我在下面写了一个有趣的剧本代码。

     
      
  • 名称:运行远程PowerShell脚本主机:win任务:

         
        
    • 名称:在MySQL中创建数据库   mysql_db:   login_user:用户   login_password:密码   名称:测试   状态:存在   注册:输出

    •   
    • 调试:Output =“ {{output.stdout}}”

    •   
    • 调试:Output =“ {{output.stderr}}”
    •   
    • 调试:var = output.stdout_lines
    •   
  •   
     

我的清单文件如下:

     

[赢得]一些IP

     

[win:vars] ansible_user =用户名ansible_password =密码   ansible_connection = ansible_winrm_server_cert_validation =忽略   ansible_winrm_transport =基本的ansible_port = 5985

     

我在运行剧本时遇到以下错误:

     

PLAY [运行远程PowerShell脚本]

     
     

任务[聚会事实]   ****************************************************** ****************************************************** ***********************************************好的:[18.220。 114.161]

     

任务[在MySQL中创建数据库]   ****************************************************** ****************************************************** ****************************************致命:[18.220.114.161]:失败! => {“已更改”:false,   “ module_stderr”:“使用\” 1 \“参数调用\” Create \“的异常:   \“在第4行:char:21 \ r \ n + def _ansiballz_main():\ r \ n +
  〜\ r \ n'('之后应为表达式。\ r \ n第12行char:27 \ r \ n +   除了(AttributeError,OSError):\ r \ n +
  〜\ r \ n在参数列表中缺少参数。\ r \ n在第14行:char:7 \ r \ n +
  如果scriptdir不是None:\ r \ n +〜\ r \ n在if中的'if'之后缺少'('   语句。\ r \ n如果sys.version_info <,则在第21行char:7 \ r \ n +   (3,):\ r \ n +〜\ r \ n在if语句的'if'之后缺少'('   行:21个字符:30 \ r \ n +如果sys.version_info <(3,):\ r \ n +
  〜\ r \ n在','之后缺少表达式。\ r \ n在第21行char:25 \ r \ n +如果   sys.version_info <(3,):\ r \ n +〜\ r \ n'<'   运算符保留供将来使用。\ r \ n在第23行:char:32 \ r \ n +
  MOD_DESC =('.py','U',imp.PY_SOURCE)\ r \ n +
  〜\ r \ n在','之后缺少表达式。\ r \ n在第23行:char:33 \ r \ n +
  MOD_DESC =('.py','U',imp.PY_SOURCE)\ r \ n +

statement.\r\nAt line:23 char:32\r\n+         MOD_DESC = ('.py', 'U',
imp.PY_SOURCE)\r\n+                                ~\r\nMissing
closing ')' in expression.\r\nAt line:23 char:46\r\n+         MOD_DESC
= ('.py', 'U', imp.PY_SOURCE)\r\n+                                              ~\r\nUnexpected token ')' in expression or statement.\r\nNot all parse
errors were reported.  Correct the reported errors and try
again.\"\r\nAt line:6 char:1\r\n+ $exec_wrapper =
[ScriptBlock]::Create($split_parts[0])\r\n+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n    +
CategoryInfo          : NotSpecified: (:) [],
MethodInvocationException\r\n    + FullyQualifiedErrorId :
ParseException\r\n \r\nThe expression after '&' in a pipeline element
produced an object that was not valid. It must result in a command
\r\nname, a script block, or a CommandInfo object.\r\nAt line:7
char:2\r\n+ &$exec_wrapper\r\n+  ~~~~~~~~~~~~~\r\n    + CategoryInfo  
: InvalidOperation: (:) [], RuntimeException\r\n    +
FullyQualifiedErrorId : BadExpression\r\n ", "module_stdout": "",
"msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc":
1}
        to retry, use: --limit @/var/lib/awx/projects/runbooks/manage_mysql_database/create_mysql_db.retry

PLAY RECAP
************************************************************************************************************************************************************* IP           : ok=1    changed=0    unreachable=0    failed=1



1 个答案:

答案 0 :(得分:0)

尝试使用ansible调用AWSCLI命令,这是我通过ansible创建MySQL rd时恰好遇到类似问题的解决方案。
例如:

 - name: create rds using cli for decryption
  command: aws rds create-db-instance --db-instance-identifier "{{ StackName }}" --allocated-storage 5 --db-instance-class "{{ db_instance_type }}" --engine mysql --master-username "{{ db_username }}" --master-user-password "{{ db_password }}" --multi-az --storage-encrypted --kms-key-id "{{ kms_id }}" --publicly-accessible --vpc-security-group-ids "{{ SG_Group }}" --db-subnet-group-name "{{ db_subnetgrp }}"