ansible 安装zk集群playbook

准备zk需要的zoo.cfg 和 myid 文件
[root@10.0.0.11 root]# cd templates/kafka/
[root@10.0.0.11 root]# ls
myid1 myid2 myid3 zoo.cfg

1.编辑主角色文件
vim install-zk.yml

---
- hosts: '{{ target }}'
  vars:
      host1: 10.0.0.11
      host2: 10.0.0.12
      host3: 10.0.0.13
  tasks:
    - include: tasks/install-zk.yml

** 2.编辑tasks文件**
vim tasks/install-zk.yml

---
- name: copy zookeeper-3.4.12.tar.gz
copy: src=files/kafka/zookeeper-3.4.12.tar.gz dest=/opt/

- name: tar zookeeper-3.4.12.tar.gz
shell: tar xf /opt/zookeeper-3.4.12.tar.gz -C /opt/
- name: mv zookeeper
shell: mv -f /opt/zookeeper-3.4.12 /opt/zookeeper

- name: chenge zk-zoo.cfg,kafka-server.properties
template: "src={{ item.src }} dest={{ item.dest }} mode=0644"
with_items:
- { src: 'kafka/zoo.cfg',dest: '/opt/zookeeper/conf/zoo.cfg' }

- name: zk-server1
lineinfile:
dest: /opt/zookeeper/conf/zoo.cfg
regexp: '^server.1='
line: 'server.1={{ host1 }}:2888:3888'
- name: zk-server2
lineinfile:
dest: /opt/zookeeper/conf/zoo.cfg
regexp: '^server.2='
line: 'server.2={{ host2 }}:2888:3888'
- name: zk-server3
lineinfile:
dest: /opt/zookeeper/conf/zoo.cfg
regexp: '^server.3='
line: 'server.3={{ host3 }}:2888:3888'


- name: mkdir file
file: dest={{ item }} state=directory mode=0755
with_items:
- /data/zookeeper/data
- /data/zookeeper/logs

- name: sync zkmyid1 file
template: src=kafka/myid1 dest=/data/zookeeper/data/myid
when: ansible_nodename == '{{ host1 }}'
- name: sync zkmyid2 file
template: src=kafka/myid2 dest=/data/zookeeper/data/myid
when: ansible_nodename == '{{ host2 }}'
- name: sync zkmyid3 file
template: src=kafka/myid3 dest=/data/zookeeper/data/myid
when: ansible_nodename == '{{ host3 }}'

- name: rm tar
shell: rm -f /opt/zookeeper-3.4.12.tar.gz

#还有好多需要进步,记录下来自己成长过程!!共勉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个用于安装 MySQL 的 Ansible Playbook: ``` --- - name: Install MySQL hosts: db become: true vars: mysql_root_password: "{{ vault_mysql_root_password }}" tasks: - name: Install MySQL packages apt: name: - mysql-server - python3-mysqldb state: present - name: Copy MySQL configuration file template: src: mysql.cnf.j2 dest: /etc/mysql/mysql.conf.d/mysqld.cnf owner: root group: root mode: '0644' notify: - restart mysql - name: Create MySQL users and databases mysql_user: login_user: root login_password: "{{ mysql_root_password }}" name: "{{ item.name }}" password: "{{ item.password }}" state: present loop: - { name: "myuser", password: "mypassword" } - { name: "mydb", password: "mypassword" } handlers: - name: restart mysql service: name: mysql state: restarted ``` 在这个 Playbook 中,我们首先定义了我们要在哪些主机上安装 MySQL(在这个例子中是 "db" 主机)以及我们要使用哪个用户进行安装(在这个例子中是 root 用户)。 我们还定义了一个变量 `mysql_root_password` 来存储 MySQL root 用户的密码。为了保护这个密码,在这里我们使用了 Ansible Vault 进行加密存储。 接下来的任务包括安装 MySQL 软件包、复制 MySQL 配置文件以及创建 MySQL 用户和数据库。最后,我们定义了一个处理程序来重启 MySQL 服务,以便使配置更改生效。 请注意,在这个 Playbook 中,我们使用了一个名为 mysql.cnf.j2 的模板文件来生成 MySQL 配置文件。如果您想使用这个 Playbook,您需要创建这个模板文件并将其放在与 Playbook 相同的目录中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值