hosts.ini内容
[kibana]
#s3 ansible_ssh_host=10.57.34.131
s2 ansible_ssh_host=10.57.30.66
#s1 ansible_ssh_host=10.57.16.44
[all:vars]
appname = kibana-5.6.8-linux-x86_64.tar.gz
appfile = kibana-5.6.8-linux-x86_64
username = tdops
deploy_dir = /data/kibana
this_dir = /etc/ansible/roles/kibana
version = 5.6.8
elasticsearch_url = http://10.57.34.131:9200
server_port = 5601
server_host = 0.0.0.0
注意: 此处的变量 server_port (在配置文件中为server.port,如果将变量写为server.port运行过程中会报错)
deploy.yml内容
# 使用方法 ansible-playbook -i hosts.ini deploy.yml
- hosts: kibana
tags:
- kibana
remote_user: root
tasks:
- name: 创建deploy目录
shell: 'mkdir -p {{ deploy_dir }}'
- name: '上传文件'
# 将本地文件复制到远程服务器
copy:
src: '{{ item.src }}'
dest: '{{ item.dest }}'
with_items:
- { src: '{{ this_dir }}/{{ appname }}', dest: '{{ deploy_dir }}/{{ appname }}' }
- name: 解压
shell: 'tar -zxvf {{ deploy_dir }}/{{ appname }} -C {{ deploy_dir }}/'
- hosts: kibana
tags:
- config
tasks:
- name: 修改配置文件
lineinfile:
dest: '{{ deploy_dir }}/{{ appfile }}/config/kibana.yml' #目标文件
line: '{{ item.key }}: {{ item.value }}' #指定文本输入内容
regexp: '^{{ item.key }}.*' #正式皮配参数
state: present
# 定义集合,并循环执行所在的模块
with_items:
- { key: "elasticsearch.url", value: "{{ elasticsearch_url }}" } #定义参数名和值
- hosts: kibana
tasks:
- name: limit for user
shell: chown -R tdops:tdops {{ deploy_dir }}/{{ appfile }}
- name: 启动 kibana
shell: su tdops -c {{ deploy_dir }}/{{ appfile }}/bin/kibana &. #此处这样写无法启动。。末解。
shell: su tdops -c {{ deploy_dir }}/{{ appfile }}/bin/kibana > /{{ deploy_dir }}/{{ appfile }}/log&
29,7 顶端