首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >适用于ubuntu 14.04的一个文件中的ansible mysql配置

适用于ubuntu 14.04的一个文件中的ansible mysql配置
EN

Stack Overflow用户
提问于 2014-12-07 01:02:11
回答 3查看 1.3K关注 0票数 2

我正在尝试写一个mysql安装和设置一个新用户和创建一个空数据库的单页ansible脚本。到目前为止我试过的是-

hosts文件

代码语言:javascript
运行
复制
[mysql]
webapp ansible_ssh_host=xxx.xxx.xxx.xxx

mysql.yml (所有任务的单个文件/vars/handelers)(主机和mysql.yml都在同一个目录中),我可以使用ssh登录远程系统

代码语言:javascript
运行
复制
---
- hosts: mysql
  vars:
    - system_packages:
          - build-essential
          - python-dev
          - python-pip
          - libmysqlclient-dev
          - mysql-server
          - python-mysqldb

    - root_password: root

  tasks:
    - name: Install MySQL
      apt: pkg={{ item }} state=installed update-cache=yes
      with_items: system_packages
      tags:
        - setup

    - name: Start MySQL service
      action: service name=mysql state=started enabled=yes 

    - name: Update mysql password for root account
      mysql_user: name=root host={{ item }} password={{root_password}}
      with_items:
            - 127.0.0.1   #In case of distributed system how should I place Ip addr of this system
            - localhost

    - name: create db 'mydb'
      action: mysql_db db=mydb state=present       

    - name: Creates database user 'eric' with password 'eric' for 'mydb' and grant all priveleges
      action: mysql_user state=present name=eric password=eric priv=mydb.*:ALL

  handlers:
    - name: start mysql
      service: name=mysql state=started

当我运行这个脚本时,我得到这样的输出(+error)

代码语言:javascript
运行
复制
failed: [webapp] => (item=127.0.0.1) => {"failed": true, "item": "127.0.0.1"}
msg: unable to connect to database, check login_user and login_password are correct or ~/.my.cnf has the credentials
EN

回答 3

Stack Overflow用户

发布于 2014-12-07 06:07:46

在设置root密码之前,您无法连接到mysql服务器。要执行此操作,请使用以下命令:

代码语言:javascript
运行
复制
- name: Set password for root user
  shell:
    mysqladmin password "{{ root_password }}" -u root
票数 0
EN

Stack Overflow用户

发布于 2014-12-07 20:04:20

在ubuntu上进行默认安装后,您只能以root用户身份和密码"root“登录到您的mysql。因此,要更改密码,您必须将mysql登录用户设置为root (正如您在下一个任务中所做的那样)。

代码语言:javascript
运行
复制
- name: Update mysql password for root account
  mysql_user: 
    name=root host={{ item }} 
    password={{root_password}} 
    login_user=root 
    login_password="root"
  sudo: yes
  sudo_user: root

ansible galaxy中也有一个现成的解决方案

票数 0
EN

Stack Overflow用户

发布于 2014-12-24 19:57:48

请将此任务添加到任务/main.yml中

代码语言:javascript
运行
复制
- name: Copy the root credentials as .my.cnf file
   template: src=root.cnf.j2 dest=~/.my.cnf mode=0600

这将是你的root.cnf.j2

代码语言:javascript
运行
复制
[client]
user=root
password={{ root_password }}

它要做的是,在没有密码的情况下从root用户连接mysql并执行这些任务。您可以在运行完所有任务后将其移除,也可以将其保留为这样,因为它位于root下,并且具有严格的权限。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27334123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档