您的位置 首页 错误

解决 ansible mysql 安装 重复执行 错误的问题

问题描述: 用 ansible   安装  mysql 的时候  在db1 装mariadb 后, 

后期还要在 db01 上装 redis 做会话保持,发现 db01上 mysql 倒库的时候报错,也手动的去解决过这个问题,比较麻烦: https://www.baimeidashu.com/8192.html

后来发现 ,当task失败时,ansible会停止执行失败的那台主机上的任务,但是继续对其他 主机执行 。

所以 当 db01 上前边的 Mysql 安装报错的时候,  后边的任务 配置 redis 就不会执行。 被中断了。

下边是我的解决思路:

 

 

我之前的程序是这样写的:

[root@m01 /etc/ansible/roles/mysqlserver/tasks]#cat main.yml.bac 
- name: Install MariaDb-Server
  yum:
    name: 
      - mariadb-server
      - MySQL-python
    state: present

- name: Start Mariadb Server
  systemd: 
    name: mariadb
    state: started
    enabled: yes
- name: configure login passwd
  shell:
    cmd: mysqladmin password ‘123456’ 

- name: copy all.sql to Db01
  copy: 
      src: all.sql
      dest: /root/all.sql
- name: Import all.sql to Myariadb
  mysql_db:
      login_host: 172.16.1.51
      login_port: 3306
      login_user: root
      name: all
      state: import
      target: /root/all.sql
- name: Restart Mariadb Server
  systemd:
      name: mariadb
      state: restarted 

 

解决思路:

在handler中监听 ,把其他 初始化 后操作 1次 任务,全部放到 handler中

 

[root@m01 /etc/ansible/roles/mysqlserver/tasks]#cat main.yml
- name: Install MariaDb-Server
  yum:
    name: 
      - mariadb-server
      - MySQL-python
    state: present
  notify: mariadb group1

 

handler:

[root@m01 /etc/ansible/roles/mysqlserver/handlers]#cat main.yml 
- name: Start Mariadb Server
  listen: mariadb group1
  systemd: 
    name: mariadb
    state: started
    enabled: yes
- name: configure login passwd
  listen: mariadb group1
  shell:
    cmd: mysqladmin password ‘123456’ 

- name: copy all.sql to Db01
  listen: mariadb group1
  copy: 
      src: all.sql
      dest: /root/all.sql
- name: Import all.sql to Myariadb
  listen: mariadb group1
  mysql_db:
      login_host: 172.16.1.51
      login_port: 3306
      login_user: root
      name: all
      state: import
      target: /root/all.sql
- name: Restart Mariadb Server
  listen: mariadb group1
  systemd:
      name: mariadb
      state: restarted

这样操作后, 后期配置 admin  会话保持 的时候 就不会被中断了。 

欢迎来撩 : 汇总all

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章