将 Puppet 翻译成 Ansible

问题描述

这是管理 service 的傀儡代码

class fred::service {

service { 'bob':
        enable => true,ensure => 'running',require => Package['bob-5.4']
    }
}

我在 Ansible 角色中的翻译

---
- name: check bob
    service:
    name: bob
    enabled: true
    state: running
    package:
    name: bob-5.4
    state: present

我的问题是:

  1. 翻译正确吗?
  2. 有人告诉我,包裹会在服务之前送达?
  3. 我需要package:

解决方法

订单不正确。您应该首先尝试安装该软件包。如果包已经存在,它会自动跳过这个(导致 ok)。

检查服务是否正在运行时,state: running 在 Ansible 中无效,它应该是 state: started

- name: Install package
  apt:
    name: bob-5.4
    state: present

- name: Check if service is running
  service:
    name: bob
    state: started
    enabled: yes

根据您安装软件包的内容,这可能需要稍作修改(例如,packageyum 而不是 apt)。