Upgrade hal8000 setup for new hubot-kredits
This commit is contained in:
		
							parent
							
								
									534f23eebc
								
							
						
					
					
						commit
						6cce1d9df8
					
				| @ -12,7 +12,9 @@ | ||||
|     "hostname": "nodejs-4", | ||||
|     "ipaddress": "192.168.122.106", | ||||
|     "roles": [ | ||||
|       "base", | ||||
|       "kvm_guest", | ||||
|       "hubot", | ||||
|       "kredits_github", | ||||
|       "sockethub" | ||||
|     ], | ||||
| @ -21,6 +23,7 @@ | ||||
|       "kosmos-base::default", | ||||
|       "kosmos_kvm::guest", | ||||
|       "kosmos-hubot::botka_irc-libera-chat", | ||||
|       "kosmos-hubot::hal8000_xmpp", | ||||
|       "kredits-github", | ||||
|       "kredits-github::default", | ||||
|       "kredits-github::nginx", | ||||
| @ -48,11 +51,11 @@ | ||||
|       "redisio::disable_os_default", | ||||
|       "redisio::configure", | ||||
|       "redisio::enable", | ||||
|       "kosmos-hubot::_user", | ||||
|       "kosmos-hubot::_nodejs", | ||||
|       "kosmos-nodejs::default", | ||||
|       "nodejs::nodejs_from_package", | ||||
|       "nodejs::repo", | ||||
|       "kosmos-hubot::_user", | ||||
|       "kosmos-base::letsencrypt", | ||||
|       "kosmos-nginx::default", | ||||
|       "nginx::default", | ||||
|       "nginx::package", | ||||
| @ -65,7 +68,8 @@ | ||||
|       "kosmos-nginx::firewall", | ||||
|       "nodejs::npm", | ||||
|       "nodejs::install", | ||||
|       "sockethub::firewall" | ||||
|       "sockethub::firewall", | ||||
|       "kosmos-base::letsencrypt" | ||||
|     ], | ||||
|     "platform": "ubuntu", | ||||
|     "platform_version": "20.04", | ||||
| @ -82,9 +86,9 @@ | ||||
|     } | ||||
|   }, | ||||
|   "run_list": [ | ||||
|     "recipe[kosmos-base]", | ||||
|     "role[base]", | ||||
|     "role[kvm_guest]", | ||||
|     "recipe[kosmos-hubot::botka_irc-libera-chat]", | ||||
|     "role[hubot]", | ||||
|     "role[kredits_github]", | ||||
|     "role[sockethub]" | ||||
|   ] | ||||
|  | ||||
							
								
								
									
										12
									
								
								roles/hubot.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								roles/hubot.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | ||||
| name "hubot" | ||||
| 
 | ||||
| default_run_list = %w( | ||||
|   kosmos-hubot::botka_irc-libera-chat | ||||
|   kosmos-hubot::hal8000_xmpp | ||||
| ) | ||||
| 
 | ||||
| env_run_lists( | ||||
|   '_default' => default_run_list, | ||||
|   'development' => [], | ||||
|   'production' => default_run_list | ||||
| ) | ||||
| @ -3,14 +3,14 @@ node.default['hal8000']['http_port'] = 8080 | ||||
| node.default['botka_irc-libera-chat']['http_port'] = 8081 | ||||
| 
 | ||||
| node.default['hal8000_xmpp']['http_port'] = 8082 | ||||
| node.default['hal8000_xmpp']['domain'] = "hal8000.chat.kosmos.org" | ||||
| node.default['hal8000_xmpp']['domain'] = "hal8000.kosmos.chat" | ||||
| 
 | ||||
| node.default['wormhole']['http_port'] = 8083 | ||||
| 
 | ||||
| node.default['hal8000_xmpp']['hubot_scripts'] = [ | ||||
|   "hubot-help", "hubot-redis-brain", "hubot-rules", "hubot-shipit", | ||||
|   "hubot-plusplus", "hubot-tell", "hubot-seen", "hubot-incoming-webhook", | ||||
|   "hubot-auth", "hubot-kredits", "hubot-schedule" | ||||
|   "hubot-tell", "hubot-seen", "hubot-incoming-webhook", | ||||
|   "hubot-auth", "hubot-schedule", "@kredits/hubot-kredits" | ||||
| ] | ||||
| 
 | ||||
| node.default['hal8000_xmpp']['rooms'] = [ | ||||
| @ -27,8 +27,8 @@ node.default['hal8000_xmpp']['kredits']['ipfs_host']             = 'localhost' | ||||
| node.default['hal8000_xmpp']['kredits']['ipfs_port']             = '5001' | ||||
| node.default['hal8000_xmpp']['kredits']['ipfs_protocol']         = 'http' | ||||
| node.default['hal8000_xmpp']['kredits']['room']                  = 'kredits@kosmos.chat' | ||||
| node.default['hal8000_xmpp']['kredits']['provider_url']          = 'https://rinkeby.infura.io/v3/c5e74367261d475ab935e2f0e726482f' | ||||
| node.default['hal8000_xmpp']['kredits']['network_id']            = '4' | ||||
| node.default['hal8000_xmpp']['kredits']['provider_url']          = 'https://rsk-testnet.kosmos.org' | ||||
| node.default['hal8000_xmpp']['kredits']['network_id']            = '31' | ||||
| node.default['hal8000_xmpp']['kredits']['wallet_path']           = 'wallet.json' | ||||
| node.default['hal8000_xmpp']['kredits']['mediawiki_url']         = 'https://wiki.kosmos.org/' | ||||
| node.default['hal8000_xmpp']['kredits']['github_repo_blacklist'] = '67P/test-one-two' | ||||
|  | ||||
| @ -6,9 +6,10 @@ description      'Configures Kosmos chat bots' | ||||
| long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) | ||||
| version          '0.2.0' | ||||
| 
 | ||||
| depends 'kosmos-base' | ||||
| depends 'kosmos-nodejs' | ||||
| depends 'kosmos-ipfs' | ||||
| depends 'firewall' | ||||
| depends 'application_javascript' | ||||
| depends 'kosmos-ipfs' | ||||
| depends 'git' | ||||
| depends 'redisio' | ||||
|  | ||||
							
								
								
									
										8
									
								
								site-cookbooks/kosmos-hubot/recipes/_nodejs.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								site-cookbooks/kosmos-hubot/recipes/_nodejs.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| # | ||||
| # Cookbook Name:: kosmos-hubot | ||||
| # Recipe:: _nodejs | ||||
| # | ||||
| 
 | ||||
| node.override["nodejs"]["repo"] = "https://deb.nodesource.com/node_16.x" | ||||
| 
 | ||||
| include_recipe "kosmos-nodejs" | ||||
| @ -14,20 +14,9 @@ end | ||||
| 
 | ||||
| include_recipe 'redisio::default' | ||||
| include_recipe 'redisio::enable' | ||||
| include_recipe "kosmos-nodejs" | ||||
| include_recipe "kosmos-hubot::_user" | ||||
| 
 | ||||
| # Needed for hubot-kredits | ||||
| include_recipe "kosmos-ipfs" | ||||
| 
 | ||||
| unless node.chef_environment == "development" | ||||
|   include_recipe 'firewall' | ||||
|   firewall_rule 'ipfs_swarm_p2p' do | ||||
|     port     4001 | ||||
|     protocol :tcp | ||||
|     command  :allow | ||||
|   end | ||||
| end | ||||
| include_recipe "kosmos-hubot::_nodejs" | ||||
| include_recipe "kosmos-base::firewall" | ||||
| 
 | ||||
| application app_path do | ||||
|   data_bag = Chef::EncryptedDataBagItem.load('credentials', app_name) | ||||
| @ -53,7 +42,13 @@ application app_path do | ||||
|     user app_user | ||||
|   end | ||||
| 
 | ||||
|   file "#{app_path}/node_modules/hubot-kredits/.env" do | ||||
|   ipfs_host = search(:node, "role:ipfs_gateway").first["knife_zero"]["host"] | ||||
|   node.override[app_name]['kredits']['ipfs_host'] = ipfs_host | ||||
| 
 | ||||
|   rsk_node_ip = search(:node, "role:rskj_testnet").first["knife_zero"]["host"] | ||||
|   node.override[app_name]['kredits']['provider_url'] = "http://#{rsk_node_ip}:4444" | ||||
| 
 | ||||
|   file "#{app_path}/node_modules/@kredits/hubot-kredits/.env" do | ||||
|     mode "0600" | ||||
|     owner app_user | ||||
|     group app_group | ||||
| @ -107,7 +102,6 @@ KREDITS_WALLET_PASSWORD=#{data_bag['kredits_wallet_password']} | ||||
|         "KREDITS_ROOM"                   => node[app_name]['kredits']['room'], | ||||
|         "KREDITS_WEBHOOK_TOKEN"          => data_bag['kredits_webhook_token'], | ||||
|         "KREDITS_PROVIDER_URL"           => node[app_name]['kredits']['provider_url'], | ||||
|         "KREDITS_NETWORK_ID"             => node[app_name]['kredits']['network_id'], | ||||
|         "KREDITS_WALLET_PATH"            => node[app_name]['kredits']['wallet_path'], | ||||
|         "KREDITS_WALLET_PASSWORD"        => data_bag['kredits_wallet_password'], | ||||
|         "KREDITS_MEDIAWIKI_URL"          => node[app_name]['kredits']['mediawiki_url'], | ||||
| @ -135,27 +129,9 @@ KREDITS_WALLET_PASSWORD=#{data_bag['kredits_wallet_password']} | ||||
|   end | ||||
| end | ||||
| 
 | ||||
| # | ||||
| # Nginx reverse proxy | ||||
| # | ||||
| unless node.chef_environment == "development" | ||||
|   include_recipe "kosmos-base::letsencrypt" | ||||
|   include_recipe "kosmos-nginx" | ||||
| 
 | ||||
|   template "#{node['nginx']['dir']}/sites-available/#{node[app_name]['domain']}" do | ||||
|     source 'nginx_conf_hubot.erb' | ||||
|     owner node["nginx"]["user"] | ||||
|     mode 0640 | ||||
|     variables express_port: node[app_name]['http_port'], | ||||
|               server_name:  node[app_name]['domain'], | ||||
|               ssl_cert:     "/etc/letsencrypt/live/#{node[app_name]['domain']}/fullchain.pem", | ||||
|               ssl_key:      "/etc/letsencrypt/live/#{node[app_name]['domain']}/privkey.pem" | ||||
|     notifies :reload, 'service[nginx]', :delayed | ||||
|   end | ||||
| 
 | ||||
|   nginx_site node[app_name]['domain'] do | ||||
|     action :enable | ||||
|   end | ||||
| 
 | ||||
|   nginx_certbot_site node[app_name]['domain'] | ||||
| firewall_rule app_name do | ||||
|   port     node[app_name]['http_port'] | ||||
|   source   "10.1.1.0/24" | ||||
|   protocol :tcp | ||||
|   command  :allow | ||||
| end | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user