ansible部署kafka集群
其中一臺作為Ansible的母機(jī)并命名為ansible,另外三臺云主機(jī)命名為node1、node2、node3,通過附件中的/ansible/ansible.tar.gz軟件包在ansible節(jié)點(diǎn)安裝Ansible服務(wù);使用這一臺母機(jī),編寫Ansible腳本(在/root目錄下創(chuàng)建example目錄作為Ansible工作目錄,部署的入口文件命名為cscc_install.yaml),編寫Ansible腳本使用roles的方式對其他三臺云主機(jī)進(jìn)行安裝kafka集群的操作(zookeeper和kafka的安裝壓縮包在gpmall-single.tar.gz壓縮包中,將zookeeper和kafka的壓縮包解壓到node節(jié)點(diǎn)的/opt目錄下進(jìn)行安裝)。
自行配置/etc/hosts文件(根據(jù)實(shí)際情況修改)
10.196.110.10 node1
10.196.110.20 node2
10.196.110.30 node3
第一種方式
mkdir -p example/roles/kafka/{files,handlers,meta,tasks,templates,vars}
第二種方式
ansible-galaxy init kafka #初始化
下載需要的文件
curl -O http://10.0.0.1/ansible.tar.gz
tar xf ansible.tar.gz
yum install -y ansible/packages/*
curl -O http://10.0.0.1/gpmall-single.tar.gz
tar xf gpmall-single.tar.gz
cp gpmall-single/zookeeper-3.4.14.tar.gz /root/example/roles/kafka/files
cp gpmall-single/kafka_2.11-1.1.1.tgz /root/example/roles/kafka/files
寫一個yum源文件安裝java
cat >> /root/example/roles/kafka/files/yum.repo <<EOF
[centos]
name=centos
baseurl=http://10.0.0.1/Competition_2021/centos/
gpgcheck=0
enabled=1
EOF
vim /etc/ansible/hosts
最后加上
[node]
node1 node_id=1
node2 node_id=2
node3 node_id=3
在example文件下面編寫cscc_install.yaml文件
---
- hosts: node
remote_user: root
roles:
- kafka
在example/roles/kafka/tasks/下面編寫main.yaml
---
- shell: rm -f /etc/yum.repos.d/*
- copy: src=yum.repo dest=/etc/yum.repos.d/yum.repo
- yum: name=java* state=installed
- unarchive: src=zookeeper-3.4.14.tar.gz dest=/opt/
- file: path=/tmp/zookeeper/ state=directory
- shell: echo "{{node_id}}" > /tmp/zookeeper/myid
- template: src=zoo.cfg.j2 dest=/opt/zookeeper-3.4.14/conf/
- shell: cd /opt/zookeeper-3.4.14/bin && ./zkServer.sh restart
- shell: cd /opt/zookeeper-3.4.14/bin && ./zkServer.sh status
- unarchive: src=kafka_2.11-1.1.1.tgz dest=/opt/
- template: src=server.properties.j2 dest=/opt/kafka_2.11-1.1.1/config
/server.properties
- shell: /opt/kafka_2.11-1.1.1/bin/kafka-server-start.sh -daemon /opt/k
afka_2.11-1.1.1/config/server.properties
zookeeper模板
vim example/roles/kafka/templates/zoo.cfg.j2
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper
clientPort=2181
{% for host in ansible_play_batch %}
server.{{ loop.index }}={{ host }}:2888:3888
{% endfor %}
kafka模板
vim example/roles/kafka/templates/server.properties.j2
broker.id={{node_id}}
listeners=PLAINTEXT://{{inventory_hostname}}:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect={% for host in ansible_play_batch %}{{ host }}:2181,{% endfor %}
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
樹形結(jié)構(gòu)文章來源:http://www.zghlxwxcb.cn/news/detail-814433.html
example/
├── cscc_install.yaml
├── group_vars
└── roles
└── kafka
├── files
│ ├── kafka_2.11-1.1.1.tgz
│ ├── yum.repo
│ └── zookeeper-3.4.14.tar.gz
├── handlers
├── meta
├── tasks
│ └── main.yaml
├── templates
│ ├── server.properties.j2
│ └── zoo.cfg.j2
└── vars
運(yùn)行文章來源地址http://www.zghlxwxcb.cn/news/detail-814433.html
ansible-playbook cscc_install.yaml
到了這里,關(guān)于ansible部署kafka集群的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!