New type: __hosts
This commit is contained in:
		
					parent
					
						
							
								574688c6e1
							
						
					
				
			
			
				commit
				
					
						c4c2d45e59
					
				
			
		
					 5 changed files with 90 additions and 0 deletions
				
			
		
							
								
								
									
										57
									
								
								cdist/conf/type/__hosts/man.rst
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								cdist/conf/type/__hosts/man.rst
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,57 @@ | |||
| cdist-type__hosts(7) | ||||
| ==================== | ||||
| 
 | ||||
| NAME | ||||
| ---- | ||||
| 
 | ||||
| cdist-type__hosts - manage entries in /etc/hosts | ||||
| 
 | ||||
| DESCRIPTION | ||||
| ----------- | ||||
| 
 | ||||
| Add or remove entries from */etc/hosts* file. | ||||
| 
 | ||||
| OPTIONAL PARAMETERS | ||||
| ------------------- | ||||
| 
 | ||||
| state | ||||
| 
 | ||||
|     If state is ``present``, make *object_id* resolve to *ip*. If | ||||
|     state is ``absent``, *object_id* will no longer resolve via | ||||
|     */etc/hosts*, if it was previously configured with this type. | ||||
|     Manually inserted entries are unaffected. | ||||
| 
 | ||||
| ip | ||||
| 
 | ||||
|     IP address, to which hostname (=\ *object_id*) must resolve. If | ||||
|     state is ``present``, this parameter is mandatory, if state is | ||||
|     ``absent``, this parameter is silently ignored. | ||||
| 
 | ||||
| EXAMPLES | ||||
| -------- | ||||
| 
 | ||||
| .. code-block:: sh | ||||
| 
 | ||||
|     # Now `funny' resolves to 192.168.1.76, | ||||
|     __hosts funny --ip 192.168.1.76 | ||||
|     # and `happy' no longer resolve via /etc/hosts if it was | ||||
|     # previously configured via __hosts. | ||||
|     __hosts happy --state absent | ||||
| 
 | ||||
| SEE ALSO | ||||
| -------- | ||||
| 
 | ||||
| :strong:`hosts`\ (5) | ||||
| 
 | ||||
| AUTHORS | ||||
| ------- | ||||
| 
 | ||||
| Dmitry Bogatov <KAction@gnu.org> | ||||
| 
 | ||||
| 
 | ||||
| COPYING | ||||
| ------- | ||||
| 
 | ||||
| Copyright (C) 2015,2016 Dmitry Bogatov. Free use of this software is granted | ||||
| under the terms of the GNU General Public License version 3 or later | ||||
| (GPLv3+). | ||||
							
								
								
									
										29
									
								
								cdist/conf/type/__hosts/manifest
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										29
									
								
								cdist/conf/type/__hosts/manifest
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,29 @@ | |||
| #!/bin/sh | ||||
| # Copyright (C) 2015  Bogatov Dmitry <KAction@gnu.org> | ||||
| # | ||||
| # This program is free software: you can redistribute it and/or modify | ||||
| # it under the terms of the GNU General Public License as published by | ||||
| # the Free Software Foundation, either version 3 of the License, or | ||||
| # (at your option) any later version. | ||||
| # | ||||
| # This program is distributed in the hope that it will be useful, | ||||
| # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| # GNU General Public License for more details. | ||||
| # | ||||
| # You should have received a copy of the GNU General Public License | ||||
| # along with this program.  If not, see <http://www.gnu.org/licenses/>. | ||||
| set -ue | ||||
| 
 | ||||
| hostname="$__object_id" | ||||
| state="$(cat "$__object/parameter/state")" | ||||
| marker="# __hosts/$hostname" | ||||
| 
 | ||||
| set -- "__hosts/$hostname" --file /etc/hosts --state "$state" | ||||
| 
 | ||||
| if [ "$state" = absent ] ; then | ||||
| 	__line "$@" --regex "$marker" | ||||
| else | ||||
| 	ip="$(cat "$__object/parameter/ip")" | ||||
| 	__line "$@" --line "$ip $hostname $marker" | ||||
| fi | ||||
							
								
								
									
										1
									
								
								cdist/conf/type/__hosts/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__hosts/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| present | ||||
							
								
								
									
										2
									
								
								cdist/conf/type/__hosts/parameter/optional
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								cdist/conf/type/__hosts/parameter/optional
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | |||
| state | ||||
| ip | ||||
|  | @ -8,6 +8,7 @@ next: | |||
| 	* Type __cron: Fix filter for new cron on sles12 sp2 (Daniel Heule) | ||||
| 	* Type __docker: Support absent state (Dominique Roux) | ||||
| 	* Type __docker_compose: Support absent state (Dominique Roux) | ||||
| 	* New type: __hosts (Dmitry Bogatov) | ||||
| 
 | ||||
| 4.4.1: 2016-12-17 | ||||
| 	* Documentation: Update docs for types that used man.rst as symbolic links (Darko Poljak) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue