设为首页 收藏本站
查看: 754|回复: 0

[经验分享] Ansible 书写我的playbook

[复制链接]

尚未签到

发表于 2018-1-2 21:08:55 | 显示全部楼层 |阅读模式
  mysql 创建数据库
  - hosts: localhost
  remote_user: root
  tasks:
  - name: test mysql
  mysql_db:
  name: mhc
  state: present
  login_user: root
  login_password: root.123
  register: mhc
  - debug: var=mhc
  --------------------------------------------------------
  修改docker容器内的mysql 配置文件 /etc/my.cnf
  执行: ansible-playbook config.yml -e "key=tmp_table_size" -e "value=99m"
  - hosts: localhost
  remote_user: root
  tasks:
  - name: add container to inventory
  add_host:
  name: compose_mysql_1
  ansible_connection: docker
  ansible_user: root
  changed_when: false
  - name: get remote my.cnf
  delegate_to: compose_mysql_1
  shell: cat /etc/my.cnf
  register: mhc
  - name: write local my.cnf
  shell: echo  "{{ mhc.stdout }}" > /tmp/my.cnf
  - name: update my.cnf
  shell: ansible-handler update_mysql_configs '{"action":"update","path":"/tmp/my.cnf","configs":{"mysqld":{"{{ key }}":"{{ value }}"}}}'
  - name: send new my.cnf
  delegate_to: compose_mysql_1
  template: src=/tmp/my.cnf dest=/etc/my.cnf owner=root group=root mode=0644
  notify: restart container
  - name: delete tmp my.cnf
  file: path=/tmp/my.cnf state=absent
  handlers:
  - name: restart container
  debug: msg="hahahahahahahahahha"
  --------------------------------------------------------------------------------
  

---  - hosts: localhost
  tasks:
  - name: include vars
  include_vars: var.yml
  - name: add container to inventory
  add_host:
  name: hehe_mysql_1
  ansible_connection: docker
  ansible_user: root
  changed_when: false
  - name: get or modify cnf file
  delegate_to: hehe_mysql_1
  cnf_file:
  action: "{{ action }}"
  section: "{{ section }}"
  option: "{{ option }}"
  value: "{{ value }}"
  path: "{{ path }}"
  register: sh
  - debug: var=sh
  when: sh.stdout is defined
  var.yml:
  

---  action: get
  section:
  option:
  value:
  path: /etc/my.cnf
  -------------------------------------------------------------
  

---  - hosts: localhost
  tasks:
  - name: include vars
  include_vars: var.yml
  - name: add container to inventory
  add_host:
  name: hehe_mysql_1
  ansible_connection: docker
  ansible_user: root
  changed_when: false
  - name: get or modify cnf file
  delegate_to: hehe_mysql_1
  cnf_file:
  action: update
  section: "{{ item.section }}"
  option: "{{ item.option }}"
  value: "{{ item.value }}"
  path: "{{ path }}"
  with_items:
  - { section: 'mysqld', option: 'tmp_table_size', value: '133m'}
  - { section: 'mysqld', option: 'aa', value: 'bb'}
  - { section: 'mysqld', option: 'aa2', value: 'bb2'}
  register: sh
  - debug: var=sh
  when: sh.stdout is defined
  

----------------------------------------------------------------------------------------  cnf_file.yml:
  

---  - name: get or modify cnf file in docker container
  delegate_to: "{{ container_name }}"
  cnf_file:
  action: "{{ action }}"
  section: "{{ section }}"
  option: "{{ option }}"
  value: "{{ value }}"
  path: "{{ path }}"
  when: container_name is defined
  register: sh
  - name: get or modify cnf file
  cnf_file:
  action: "{{ action }}"
  section: "{{ section }}"
  option: "{{ option }}"
  value: "{{ value }}"
  path: "{{ path }}"
  when: container_name is undefined
  register: sh2
  add_host.yml:
  

---  - name: add container to inventory
  add_host:
  name: "{{ container_name }}"
  ansible_connection: docker
  ansible_user: root
  changed_when: false
  main.yml
  

---  - hosts: localhost
  tasks:
  - import_tasks: add_host.yml
  vars:
  container_name: hehe_mysql_1
  - import_tasks: cnf_file.yml
  vars:
  container_name: hehe_mysql_1
  action: get
  section:
  option:
  value:
  path: /etc/my.cnf
  - debug: var=sh
  

main2.yml  

---  - hosts: localhost
  tasks:
  - import_tasks: add_host.yml
  vars:
  container_name: hehe_mysql_1
  - include_tasks: cnf_file.yml
  vars:
  container_name: hehe_mysql_1
  action: delete
  section: "{{ item.section }}"
  option: "{{ item.option }}"
  value:
  path: /etc/my.cnf
  with_items:
  - { section: 'mysqld', option: 'aa'}
  - { section: 'mysqld', option: 'aa2'}
  - debug: var=sh
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-430943-1-1.html 上篇帖子: centos7+ansible自动化工具使用 下篇帖子: Ansible 任务计时
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表