From 9de4f417ee3037b5f06e17b86132ca0472a0c5f2 Mon Sep 17 00:00:00 2001 From: chigang Date: Sat, 24 Jun 2017 14:13:53 +0800 Subject: add plugins template JIRA: - add a plugin template for compass4nfv Change-Id: Iec767a7fab43617633238f9c5e326896dd6ce82e Signed-off-by: chigang --- plugins/ntp/handlers/main.yml | 13 +++++++++ plugins/ntp/plugins.desc | 58 +++++++++++++++++++++++++++++++++++++++ plugins/ntp/tasks/main.yml | 32 +++++++++++++++++++++ plugins/ntp/templates/ntp.conf.j2 | 21 ++++++++++++++ plugins/ntp/vars/main.yml | 17 ++++++++++++ 5 files changed, 141 insertions(+) create mode 100644 plugins/ntp/handlers/main.yml create mode 100644 plugins/ntp/plugins.desc create mode 100644 plugins/ntp/tasks/main.yml create mode 100644 plugins/ntp/templates/ntp.conf.j2 create mode 100644 plugins/ntp/vars/main.yml (limited to 'plugins/ntp') diff --git a/plugins/ntp/handlers/main.yml b/plugins/ntp/handlers/main.yml new file mode 100644 index 00000000..866f31c3 --- /dev/null +++ b/plugins/ntp/handlers/main.yml @@ -0,0 +1,13 @@ +############################################################################## +# Copyright (c) 2016-2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +--- +- name: restart ntp service + service: + name: ntp + state: restarted diff --git a/plugins/ntp/plugins.desc b/plugins/ntp/plugins.desc new file mode 100644 index 00000000..35666764 --- /dev/null +++ b/plugins/ntp/plugins.desc @@ -0,0 +1,58 @@ +# This is an example for add a plugin into Compass4nfv +# It illustrates how feature components can be integrated into Compass4nfv +# together with scenarios. +# +# +# More details can be found in the development document. +# ############################################################## +--- +plugin: + # plugin name,it is also as the switch to enable/disable plugin in scenario + # files + name: ntp + + description: network time protocol + + maintainers: + - huangxiangyu5@huawei.com + + # host os type: ubuntu/centos + os_version: ubuntu + + # true: this plugin is deployed separately on a new node + # false: this plugin is deployed on controller or compute node + independent_hosts: false + + # artifact: packege download url for this plugin + artifacts: + url: http://archive.ubuntu.com/ubuntu/pool/main/n/ntp/ntp_4.2.8p4+dfsg-3ubuntu5.4_amd64.deb + + # global_vars: + # define the parameters required by the plugin + # and its value will be defined and passed by compass4nfv + global_vars: + - ntp_server: "0.ubuntu.pool.ntp.org" + + # orchestration + # A plugin can have mutiple components, each component may need to be + # installed on different inventory or have its own configuration. + # due to Compass4nfv currently only supports ansible, so each component + # of the installation and configuration script need to be use ansible. + # cm : congfiguration management tool : only ansible support + # role: each component corresponds to ansible script that locates in the same + # directory as plugin.desc. + # phrase: pre_openstack -- the component is installed after the OS + # provisioning, before the OpenStack deployment. + # phrase: post_openstack -- the component is installed before the OpenStack + # deployment. + # inventory: if the phrase is pre_openstack, inventory can be controller and + # compute. if the phrase is post_openstack, inventory can be get from the file + # openstack-ansible.inventory + orchestration: + cm: ansible + roles: + - role: install ntp + phrase: pre_openstack + inventory: + - controller + - compute diff --git a/plugins/ntp/tasks/main.yml b/plugins/ntp/tasks/main.yml new file mode 100644 index 00000000..031fb36d --- /dev/null +++ b/plugins/ntp/tasks/main.yml @@ -0,0 +1,32 @@ +############################################################################## +# Copyright (c) 2016-2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +--- +- name: download packages + get_url: + url: "{{ ntp_url }}" + dest: "{{ workspace }}" + +- name: install dependent packages + apt: + name: "{{ item }}" + state: present + with_items: + - "{{ dependancy }}" + +- name: install ntp package + command: dpkg -i "{{ workspace }}/{{ ntp_pkg }}" + +- name: config ntp + template: + src: ntp.con.j2 + dest: /etc/ntp.conf + notify: + - restart ntp service + +- meta: flush_handlers diff --git a/plugins/ntp/templates/ntp.conf.j2 b/plugins/ntp/templates/ntp.conf.j2 new file mode 100644 index 00000000..697e4078 --- /dev/null +++ b/plugins/ntp/templates/ntp.conf.j2 @@ -0,0 +1,21 @@ +driftfile /var/lib/ntp/ntp.drift + +statistics loopstats peerstats clockstats +filegen loopstats file loopstats type day enable +filegen peerstats file peerstats type day enable +filegen clockstats file clockstats type day enable + +pool 0.ubuntu.pool.ntp.org iburst +pool 1.ubuntu.pool.ntp.org iburst +pool 2.ubuntu.pool.ntp.org iburst +pool 3.ubuntu.pool.ntp.org iburst + +pool "{{ ntp_server }}" + +restrict -4 default kod notrap nomodify nopeer noquery limited +restrict -6 default kod notrap nomodify nopeer noquery limited + +restrict 127.0.0.1 +restrict ::1 + +restrict source notrap nomodify noquery diff --git a/plugins/ntp/vars/main.yml b/plugins/ntp/vars/main.yml new file mode 100644 index 00000000..708fa423 --- /dev/null +++ b/plugins/ntp/vars/main.yml @@ -0,0 +1,17 @@ +############################################################################## +# Copyright (c) 2016-2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +--- +workspace: /tmp/plugin + +ntp_url: http://archive.ubuntu.com/ubuntu/pool/main/n/ntp/ntp_4.2.8p4+dfsg-3ubuntu5.4_amd64.deb + +ntp_pkg: ntp_4.2.8p4+dfsg-3ubuntu5.4_amd64.deb + +dependancy: + - libopts25 -- cgit 1.2.3-korg