#
### 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 gc systemd unit file
  template:
    src: roles/accumulo/templates/gc.j2
    dest: "/etc/systemd/system/accumulo-gc.service"
    mode: 0644

- name: start accumulo-gc using systemd
  systemd:
    state: started
    name: "accumulo-gc"
    daemon_reload: yes
    enabled: yes
