#
### Licensed to the Apache Software Foundation (ASF) under one or more
### contributor license agreements.  See the NOTICE file distributed with
### this work for additional information regarding copyright ownership.
### The ASF licenses this file to You under the Apache License, Version 2.0
### (the "License"); you may not use this file except in compliance with
### the License.  You may obtain a copy of the License at
###
###    http://www.apache.org/licenses/LICENSE-2.0
###
### Unless required by applicable law or agreed to in writing, software
### distributed under the License is distributed on an "AS IS" BASIS,
### WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
### See the License for the specific language governing permissions and
### limitations under the License.
###
##
- name: install accumulo tserver systemd unit file
  template:
    src: roles/accumulo/templates/tserver.j2
    dest: "/etc/systemd/system/accumulo-tserver@.service"
    mode: "0644"

- name: start accumulo-tserver(s) using systemd
  systemd:
    state: started
    name: "accumulo-tserver@{{ item }}.service"
    daemon_reload: yes
    enabled: yes
  with_sequence: "start=1 end={{ num_tservers }}"
