Mirantis Nailgun is the most important service a RESTful application written in Python that contains all the business logic of the system (Multiple Workers)
Master node is the main part of the Fuel project (ins Deplotment preversioning OS )
Nailgun stores all of its data in a PostgreSQL database. It contains the hardware configuration of all discovered managed nodes, the roles, environment settings, current deployment status and progress of running deployments.
bootstrap image runs a special script called Nailgun agent. The agent nailgun-agent.rb collects the server’s hardware information and submits it to Nailgun through the REST API. The deployment process is started by the user after he has configured a new environment. The Nailgun service creates a JSON data structure with the environment settings, its nodes and their roles and puts this file into the RabbitMQ queue. This message should be received by one of the worker processes who will actually deploy the environment. These processes are called Astute
worker processes who will actually deploy the environment. These processes are called Astute
use the Astute library which implements all deployment actions
Astute uses XML-RPC to set these nodes’ configuration in Cobbler and then reboots the nodes using MCollective agent to let Cobbler install the base operating system.
Cobbler is a deployment system that can control DHCP and TFTP services and use them to network boot the managed node and start the OS installer with the user-configured settings
managed node’s(云中计算节点) OS is installed, Astute can start the deployment of OpenStack services,First, it uploads the node’s configuration to the /etc/astute.yaml file on node using the uploadfile agent. This file contains all the variables and settings that will be needed for the deployment
Next, Astute uses the puppetsync agent to synchronize Puppet modules and manifests
When the modules are synchronized, Astute can run the actual deployment by applying the main Puppet manifest site.pp ====>astute.yuml控制着puppet,实际的OpenStack的环境节点中的组件由Puppet server 调用各个计算节点的 puppet agent完成.
daemonize puppet apply /etc/puppet/manifests/site.pp
Astute periodically polls the agent to check if the deployment has finished and reports the progress to Nailgun through its RabbitMQ queue
Astute is the Fuel component that represents Nailgun’s workers, and its function is to run actions according to the instructions provided from Nailgun. Astute provides a layer which encapsulates all the details about interaction with a variety of services such as Cobbler, Puppet, shell scripts, etc. and provides a universal asynchronous interface to those services