Refactor botka recipe
This commit is contained in:
parent
36cfeab15d
commit
e8f325b41b
@ -1,26 +1,23 @@
|
|||||||
node.default['hal8000']['http_port'] = 8080
|
node.default['hal8000']['http_port'] = 8080
|
||||||
|
|
||||||
node.default['botka_freenode']['http_port'] = 8081
|
node.default['botka_freenode']['http_port'] = 8081
|
||||||
|
node.default['botka_freenode']['domain'] = "freenode.botka.kosmos.org"
|
||||||
|
|
||||||
node.default['hal8000_xmpp']['http_port'] = 8082
|
node.default['hal8000_xmpp']['http_port'] = 8082
|
||||||
|
node.default['hal8000_xmpp']['domain'] = "xmpp.hal8000.kosmos.org"
|
||||||
|
|
||||||
node.default['hal8000_xmpp']['hubot_scripts'] = [
|
node.default['hal8000_xmpp']['hubot_scripts'] = [
|
||||||
"hubot-help",
|
"hubot-help", "hubot-read-tweet", "hubot-redis-brain",
|
||||||
"hubot-read-tweet",
|
"hubot-rules", "hubot-shipit", "hubot-plusplus",
|
||||||
"hubot-redis-brain",
|
"hubot-tell", "hubot-seen", "hubot-rss-reader",
|
||||||
"hubot-rules",
|
"hubot-incoming-webhook", "hubot-auth",
|
||||||
"hubot-shipit",
|
"hubot-kredits", "hubot-schedule"
|
||||||
"hubot-plusplus",
|
|
||||||
"hubot-tell",
|
|
||||||
"hubot-seen",
|
|
||||||
"hubot-rss-reader",
|
|
||||||
"hubot-incoming-webhook",
|
|
||||||
"hubot-auth",
|
|
||||||
"hubot-kredits",
|
|
||||||
"hubot-schedule"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
node.default['hal8000_xmpp']['rooms'] = [
|
node.default['hal8000_xmpp']['rooms'] = [
|
||||||
'kosmos@chat.kosmos.org'
|
'kosmos@chat.kosmos.org',
|
||||||
# 'kosmos-dev@chat.kosmos.org',
|
'kosmos-dev@chat.kosmos.org',
|
||||||
|
'kredits@chat.kosmos.org',
|
||||||
]
|
]
|
||||||
|
|
||||||
node.default['hal8000_xmpp']['auth_admins'] = []
|
node.default['hal8000_xmpp']['auth_admins'] = []
|
||||||
@ -30,7 +27,7 @@ node.default['hal8000_xmpp']['kredits']['ipfs_host'] = 'localhost'
|
|||||||
# members of the cluster
|
# members of the cluster
|
||||||
node.default['hal8000_xmpp']['kredits']['ipfs_port'] = '9095'
|
node.default['hal8000_xmpp']['kredits']['ipfs_port'] = '9095'
|
||||||
node.default['hal8000_xmpp']['kredits']['ipfs_protocol'] = 'http'
|
node.default['hal8000_xmpp']['kredits']['ipfs_protocol'] = 'http'
|
||||||
node.default['hal8000_xmpp']['kredits']['room'] = 'kosmos@chat.kosmos.org'
|
node.default['hal8000_xmpp']['kredits']['room'] = 'kredits@chat.kosmos.org'
|
||||||
node.default['hal8000_xmpp']['kredits']['provider_url'] = 'https://rinkeby.infura.io/v3/c5e74367261d475ab935e2f0e726482f'
|
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']['network_id'] = '4'
|
||||||
node.default['hal8000_xmpp']['kredits']['wallet_path'] = 'wallet.json'
|
node.default['hal8000_xmpp']['kredits']['wallet_path'] = 'wallet.json'
|
||||||
|
@ -22,32 +22,35 @@
|
|||||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
# THE SOFTWARE.
|
# THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
app_name = "botka_freenode"
|
||||||
|
app_path = "/opt/#{app_name}"
|
||||||
|
app_user = "hubot"
|
||||||
|
app_group = "hubot"
|
||||||
|
|
||||||
build_essential 'botka' do
|
build_essential app_name do
|
||||||
compile_time true
|
compile_time true
|
||||||
end
|
end
|
||||||
|
|
||||||
include_recipe "kosmos-nodejs"
|
include_recipe "kosmos-nodejs"
|
||||||
include_recipe "kosmos-redis"
|
include_recipe "kosmos-redis"
|
||||||
|
|
||||||
botka_freenode_data_bag_item = Chef::EncryptedDataBagItem.load('credentials', 'botka_freenode')
|
application app_path do
|
||||||
|
data_bag = Chef::EncryptedDataBagItem.load('credentials', app_name)
|
||||||
|
|
||||||
botka_freenode_path = "/opt/botka_freenode"
|
owner app_user
|
||||||
application botka_freenode_path do
|
group app_group
|
||||||
owner "hubot"
|
|
||||||
group "hubot"
|
|
||||||
|
|
||||||
git do
|
git do
|
||||||
user "hubot"
|
user app_user
|
||||||
group "hubot"
|
group app_group
|
||||||
repository "https://github.com/67P/botka.git"
|
repository "https://github.com/67P/botka.git"
|
||||||
revision "master"
|
revision "master"
|
||||||
end
|
end
|
||||||
|
|
||||||
file "#{name}/external-scripts.json" do
|
file "#{app_path}/external-scripts.json" do
|
||||||
mode "0640"
|
mode "0640"
|
||||||
owner "hubot"
|
owner app_user
|
||||||
group "hubot"
|
group app_group
|
||||||
content [
|
content [
|
||||||
"hubot-help",
|
"hubot-help",
|
||||||
"hubot-redis-brain",
|
"hubot-redis-brain",
|
||||||
@ -57,7 +60,7 @@ application botka_freenode_path do
|
|||||||
end
|
end
|
||||||
|
|
||||||
npm_install do
|
npm_install do
|
||||||
user "hubot"
|
user app_user
|
||||||
end
|
end
|
||||||
|
|
||||||
execute "systemctl daemon-reload" do
|
execute "systemctl daemon-reload" do
|
||||||
@ -65,46 +68,46 @@ application botka_freenode_path do
|
|||||||
action :nothing
|
action :nothing
|
||||||
end
|
end
|
||||||
|
|
||||||
template "/lib/systemd/system/botka_freenode_nodejs.service" do
|
template "/lib/systemd/system/#{app_name}.service" do
|
||||||
source 'nodejs.systemd.service.erb'
|
source 'nodejs.systemd.service.erb'
|
||||||
owner 'root'
|
owner 'root'
|
||||||
group 'root'
|
group 'root'
|
||||||
mode '0644'
|
mode '0644'
|
||||||
variables(
|
variables(
|
||||||
user: "hubot",
|
user: app_user,
|
||||||
group: "hubot",
|
group: app_group,
|
||||||
app_dir: botka_freenode_path,
|
app_dir: app_path,
|
||||||
entry: "#{botka_freenode_path}/bin/hubot -a irc",
|
entry: "#{app_path}/bin/hubot -a irc",
|
||||||
environment: {
|
environment: {
|
||||||
|
"HUBOT_LOG_LEVEL" => node.chef_environment == "development" ? "debug" : "info",
|
||||||
"HUBOT_IRC_SERVER" => "irc.freenode.net",
|
"HUBOT_IRC_SERVER" => "irc.freenode.net",
|
||||||
"HUBOT_IRC_ROOMS" => "#5apps,#kosmos,#kosmos-dev,#kosmos-random,#remotestorage,#hackerbeach,#unhosted,#sockethub,#opensourcedesign,#openknot,#emberjs,#mastodon,#indieweb,#lnd",
|
"HUBOT_IRC_ROOMS" => "#5apps,#kosmos,#kosmos-dev,#kosmos-random,#remotestorage,#hackerbeach,#unhosted,#sockethub,#opensourcedesign,#openknot,#emberjs,#mastodon,#indieweb,#lnd",
|
||||||
"HUBOT_IRC_NICK" => "botka",
|
"HUBOT_IRC_NICK" => "botka",
|
||||||
"HUBOT_IRC_NICKSERV_USERNAME" => "botka",
|
"HUBOT_IRC_NICKSERV_USERNAME" => "botka",
|
||||||
"HUBOT_IRC_NICKSERV_PASSWORD" => botka_freenode_data_bag_item['nickserv_password'],
|
"HUBOT_IRC_NICKSERV_PASSWORD" => data_bag['nickserv_password'],
|
||||||
"HUBOT_IRC_UNFLOOD" => "100",
|
"HUBOT_IRC_UNFLOOD" => "100",
|
||||||
"HUBOT_RSS_PRINTSUMMARY" => "false",
|
"HUBOT_RSS_PRINTSUMMARY" => "false",
|
||||||
"HUBOT_RSS_PRINTERROR" => "false",
|
"HUBOT_RSS_PRINTERROR" => "false",
|
||||||
"HUBOT_RSS_IRCCOLORS" => "true",
|
"HUBOT_RSS_IRCCOLORS" => "true",
|
||||||
# "HUBOT_LOG_LEVEL" => "error",
|
|
||||||
"EXPRESS_PORT" => node[app_name]['http_port'],
|
"EXPRESS_PORT" => node[app_name]['http_port'],
|
||||||
"HUBOT_AUTH_ADMIN" => "bkero,derbumi,galfert,gregkare,jaaan,slvrbckt,raucao",
|
"HUBOT_AUTH_ADMIN" => "bkero,derbumi,galfert,gregkare,jaaan,slvrbckt,raucao",
|
||||||
"HUBOT_HELP_REPLY_IN_PRIVATE" => "true",
|
"HUBOT_HELP_REPLY_IN_PRIVATE" => "true",
|
||||||
"RS_LOGGER_USER" => "kosmos@5apps.com",
|
"RS_LOGGER_USER" => "kosmos@5apps.com",
|
||||||
"RS_LOGGER_TOKEN" => botka_freenode_data_bag_item['rs_logger_token'],
|
"RS_LOGGER_TOKEN" => data_bag['rs_logger_token'],
|
||||||
"RS_LOGGER_SERVER_NAME" => "freenode",
|
"RS_LOGGER_SERVER_NAME" => "freenode",
|
||||||
"RS_LOGGER_PUBLIC" => "true",
|
"RS_LOGGER_PUBLIC" => "true",
|
||||||
"GCM_API_KEY" => botka_freenode_data_bag_item['gcm_api_key'],
|
"GCM_API_KEY" => data_bag['gcm_api_key'],
|
||||||
"VAPID_SUBJECT" => "https://kosmos.org",
|
"VAPID_SUBJECT" => "https://kosmos.org",
|
||||||
"VAPID_PUBLIC_KEY" => botka_freenode_data_bag_item['vapid_public_key'],
|
"VAPID_PUBLIC_KEY" => data_bag['vapid_public_key'],
|
||||||
"VAPID_PRIVATE_KEY" => botka_freenode_data_bag_item['vapid_private_key'],
|
"VAPID_PRIVATE_KEY" => data_bag['vapid_private_key'],
|
||||||
"REDIS_URL" => "redis://localhost:6379/botka"
|
"REDIS_URL" => "redis://localhost:6379/botka"
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
notifies :run, "execute[systemctl daemon-reload]", :delayed
|
notifies :run, "execute[systemctl daemon-reload]", :delayed
|
||||||
notifies :restart, "service[botka_freenode_nodejs]", :delayed
|
notifies :restart, "service[#{app_name}]", :delayed
|
||||||
end
|
end
|
||||||
|
|
||||||
service "botka_freenode_nodejs" do
|
service app_name do
|
||||||
action [:enable, :start]
|
action [:enable, :start]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -113,25 +116,23 @@ end
|
|||||||
# Nginx reverse proxy
|
# Nginx reverse proxy
|
||||||
#
|
#
|
||||||
unless node.chef_environment == "development"
|
unless node.chef_environment == "development"
|
||||||
express_domain = "freenode.botka.kosmos.org"
|
|
||||||
|
|
||||||
include_recipe "kosmos-base::letsencrypt"
|
include_recipe "kosmos-base::letsencrypt"
|
||||||
include_recipe "kosmos-nginx"
|
include_recipe "kosmos-nginx"
|
||||||
|
|
||||||
template "#{node['nginx']['dir']}/sites-available/#{express_domain}" do
|
template "#{node['nginx']['dir']}/sites-available/#{node[app_name]['domain']}" do
|
||||||
source 'nginx_conf_hubot.erb'
|
source 'nginx_conf_hubot.erb'
|
||||||
owner node["nginx"]["user"]
|
owner node["nginx"]["user"]
|
||||||
mode 0640
|
mode 0640
|
||||||
variables express_port: node[app_name]['http_port'],
|
variables express_port: node[app_name]['http_port'],
|
||||||
server_name: express_domain,
|
server_name: node[app_name]['domain'],
|
||||||
ssl_cert: "/etc/letsencrypt/live/#{express_domain}/fullchain.pem",
|
ssl_cert: "/etc/letsencrypt/live/#{node[app_name]['domain']}/fullchain.pem",
|
||||||
ssl_key: "/etc/letsencrypt/live/#{express_domain}/privkey.pem"
|
ssl_key: "/etc/letsencrypt/live/#{node[app_name]['domain']}/privkey.pem"
|
||||||
notifies :reload, 'service[nginx]', :delayed
|
notifies :reload, 'service[nginx]', :delayed
|
||||||
end
|
end
|
||||||
|
|
||||||
nginx_site express_domain do
|
nginx_site node[app_name]['domain'] do
|
||||||
action :enable
|
action :enable
|
||||||
end
|
end
|
||||||
|
|
||||||
nginx_certbot_site express_domain
|
nginx_certbot_site node[app_name]['domain']
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user