ansible mysql_user 模块

ansible mysql_user 模块可以添加/删除mysql数据库账户,修改数据库密码等功能,我用它来自动安装之后的账户初始化,相比shell之类的是要方便一些,其他人也能看懂

其他mysql 相关

  1. mysql_db 用来安装数据库的
  2. mysql_replication 配置数据库主从复制关系的
  3. mysql_variables 管理数据库变量的

ansible-doc mysql_user

> MYSQL_USER    (/usr/lib/python2.7/site-packages/ansible/modules/database/mysql/mysql_user.py)

        Adds or removes a user from a MySQL database.

OPTIONS (= is mandatory):

- append_privs
        Append the privileges defined by priv to the existing ones for this user instead of overwriting existing ones.
        (Choices: yes, no)[Default: no]
        version_added: 1.4

- check_implicit_admin
        Check if mysql allows login as root/nopassword before trying supplied credentials.
        (Choices: yes, no)[Default: no]
        version_added: 1.3

- config_file
        Specify a config file from which user and password are to be read.
        [Default: ~/.my.cnf]
        version_added: 2.0

- connect_timeout
        The connection timeout when connecting to the MySQL server.
        [Default: 30]
        version_added: 2.1

- encrypted
        Indicate that the 'password' field is a `mysql_native_password` hash
        (Choices: yes, no)[Default: no]
        version_added: 2.0

- host
        the 'host' part of the MySQL username
        [Default: localhost]

- host_all
        override the host option, making ansible apply changes to all hostnames for a given user.  This option cannot be used when creating users
        (Choices: yes, no)[Default: no]
        version_added: 2.1

- login_host
        Host running the database.
        [Default: localhost]

- login_password
        The password used to authenticate with.
        [Default: None]

- login_port
        Port of the MySQL server. Requires `login_host' be defined as other then localhost if login_port is used.
        [Default: 3306]

- login_unix_socket
        The path to a Unix domain socket for local connections.
        [Default: None]

- login_user
        The username used to authenticate with.
        [Default: None]

= name
        name of the user (role) to add or remove


- password
        set the user's password.
        [Default: None]

- priv
        MySQL privileges string in the format: `db.table:priv1,priv2'.
        Multiple privileges can be specified by separating each one using a forward slash: `db.table:priv/db.table:priv'.
        The format is based on MySQL `GRANT' statement.
        Database and table names can be quoted, MySQL-style.
        If column privileges are used, the `priv1,priv2' part must be exactly as returned by a `SHOW GRANT' statement. If not followed, the module
        will always report changes. It includes grouping columns by permission (`SELECT(col1,col2') instead of `SELECT(col1',SELECT(col2))).
        [Default: None]

- sql_log_bin
        Whether binary logging should be enabled or disabled for the connection.
        (Choices: yes, no)[Default: yes]
        version_added: 2.1

- ssl_ca
        The path to a Certificate Authority (CA) certificate. This option, if used, must specify the same certificate as used by the server.
        [Default: None]
        version_added: 2.0

- ssl_cert
        The path to a client public key certificate.
        [Default: None]
        version_added: 2.0

- ssl_key
        The path to the client private key.
        [Default: None]
        version_added: 2.0

- state
        Whether the user should exist.  When `absent', removes the user.
        (Choices: present, absent)[Default: present]

- update_password
        `always' will update passwords if they differ.  `on_create' will only set the password for newly created users.
        (Choices: always, on_create)[Default: always]
        version_added: 2.0


NOTES:
      * MySQL server installs with default login_user of 'root' and no password. To secure this user as part of an idempotent playbook, you
        must create at least two tasks: the first must change the root user's password, without providing any login_user/login_password
        details. The second must drop a ~/.my.cnf file containing the new root credentials. Subsequent runs of the playbook will then succeed
        by reading the new credentials from the file.
      * Currently, there is only support for the `mysql_native_password` encrypted password hash module.
      * Requires the MySQLdb Python package on the remote host. For Ubuntu, this is as easy as apt-get install python-mysqldb. (See [apt].)
        For CentOS/Fedora, this is as easy as yum install MySQL-python. (See [yum].)
      * Both `login_password' and `login_user' are required when you are passing credentials. If none are present, the module will attempt to
        read the credentials from `~/.my.cnf', and finally fall back to using the MySQL default login of 'root' with no password.

REQUIREMENTS:  MySQLdb

AUTHOR: Jonathan Mainguy (@Jmainguy)
        METADATA:
          status:
          - preview
          supported_by: community

EXAMPLES:

# Removes anonymous user account for localhost
- mysql_user:
    name: ''
    host: localhost
    state: absent

# Removes all anonymous user accounts
- mysql_user:
    name: ''
    host_all: yes
    state: absent

# Create database user with name 'bob' and password '12345' with all database privileges
- mysql_user:
    name: bob
    password: 12345
    priv: '*.*:ALL'
    state: present

# Create database user with name 'bob' and previously hashed mysql native password '*EE0D72C1085C46C5278932678FBE2C6A782821B4' with all database privileges
- mysql_user:
    name: bob
    password: '*EE0D72C1085C46C5278932678FBE2C6A782821B4'
    encrypted: yes
    priv: '*.*:ALL'
    state: present

# Creates database user 'bob' and password '12345' with all database privileges and 'WITH GRANT OPTION'
- mysql_user:
    name: bob
    password: 12345
    priv: '*.*:ALL,GRANT'
    state: present

# Modify user Bob to require SSL connections. Note that REQUIRESSL is a special privilege that should only apply to *.* by itself.
- mysql_user:
    name: bob
    append_privs: true
    priv: '*.*:REQUIRESSL'
    state: present

# Ensure no user named 'sally'@'localhost' exists, also passing in the auth credentials.
- mysql_user:
    login_user: root
    login_password: 123456
    name: sally
    state: absent

# Ensure no user named 'sally' exists at all
- mysql_user:
    name: sally
    host_all: yes
    state: absent

# Specify grants composed of more than one word
- mysql_user:
    name: replication
    password: 12345
    priv: "*.*:REPLICATION CLIENT"
    state: present

# Revoke all privileges for user 'bob' and password '12345'
- mysql_user:
    name: bob
    password: 12345
    priv: "*.*:USAGE"
    state: present

# Example privileges string format
# mydb.*:INSERT,UPDATE/anotherdb.*:SELECT/yetanotherdb.*:ALL

# Example using login_unix_socket to connect to server
- mysql_user:
    name: root
    password: abc123
    login_unix_socket: /var/run/mysqld/mysqld.sock

# Example of skipping binary logging while adding user 'bob'
- mysql_user:
    name: bob
    password: 12345
    priv: "*.*:USAGE"
    state: present
    sql_log_bin: no

# Example .my.cnf file for setting the root password
# [client]
# user=root
# password=n<_665{vS43y
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352

推荐阅读更多精彩内容