Skip to content

Instantly share code, notes, and snippets.

@yuanying
Last active December 18, 2015 09:39
Show Gist options
  • Save yuanying/5762538 to your computer and use it in GitHub Desktop.
Save yuanying/5762538 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby -KU
require 'pp'
require 'optparse'
require 'cfoundry'
target = 'http://api.paas.fwdns.org'
org_admin_user = '[email protected]'
org_admin_password = 'micr0@micr0'
user = nil
password = nil
admin = nil
target_org = nil
opt = OptionParser.new
opt.on('-t TARGET') { |v| target = v }
opt.on('--org-admin ORG_ADMIN') { |v| org_admin_user = v }
opt.on('--org-admin-password ORG_ADMIN_PASSWORD') { |v| org_admin_password = v }
opt.on('-u USER') { |v| user = v }
opt.on('-p PASSWORD') { |v| password = v }
opt.on('-a') {|v| admin = true }
opt.on('-o ORG') {|v| target_org = v }
opt.parse!(ARGV)
unless user && password && target_org
puts 'User and Password and Target organization are required.'
exit 1
end
organization = nil
admin_client = CFoundry::V2::Client.new(target)
admin_client.login(org_admin_user, org_admin_password)
admin_client.organizations.each do |org|
organization = org if target_org == org.name
end
unless organization
puts 'Organization name is invalid'
exit 1
end
cf = CFoundry::V2::Client.new(target)
cf.login(user, password)
user = cf.current_user
organization.add_user user
puts "Added #{user.email} to #{organization.name} organization as Developer."
if admin
organization.add_manager user
puts "Added #{user.email} to #{organization.name} organization as Manager."
end
#!/usr/bin/env ruby -KU
require 'pp'
require 'optparse'
require 'cfoundry'
target = 'http://api.paas.fwdns.org'
space_admin_user = '[email protected]'
space_admin_password = 'micr0@micr0'
user = nil
password = nil
admin = nil
target_org = nil
target_space = nil
opt = OptionParser.new
opt.on('-t TARGET') { |v| target = v }
opt.on('--space-admin SPACE_ADMIN') { |v| space_admin_user = v }
opt.on('--space-admin-password SPACE_ADMIN_PASSWORD') { |v| space_admin_password = v }
opt.on('-u USER') { |v| user = v }
opt.on('-p PASSWORD') { |v| password = v }
opt.on('-a') {|v| admin = true }
opt.on('-o ORG') {|v| target_org = v }
opt.on('-s SPACE') { |v| target_space = v }
opt.parse!(ARGV)
unless user && password && target_org && target_space
puts 'User and Password and Target organization and Target space are required.'
exit 1
end
organization = nil
space = nil
admin_client = CFoundry::V2::Client.new(target)
admin_client.login(space_admin_user, space_admin_password)
admin_client.organizations.each do |org|
organization = org if target_org == org.name
end
unless organization
puts 'Organization name is invalid'
exit 1
end
organization.spaces.each do |sp|
space = sp if target_space == sp.name
end
unless space
puts 'Space name is invalid'
exit 1
end
cf = CFoundry::V2::Client.new(target)
cf.login(user, password)
user = cf.current_user
space.add_developer user
puts "Added #{user.email} to #{space.name} space as Developer."
if admin
space.add_manager user
puts "Added #{user.email} to #{space.name} space as Manager."
end
---
name: cfos
jobs:
- name: data_servers
template:
- debian_nfs_server
- postgres
- nats
- vcap_redis
properties:
nfs_server:
network: "10.192.83.0/24"
- name: control_servers
template:
- health_manager_next
- uaa
- name: control_servers_ng_spec
template:
- cloud_controller_ng
- gorouter
- name: execution_servers
template:
- dea_next
properties:
micro: true
domain: paas.fwdns.org
app_domains:
- ok.fwdns.org # forwarded 10.192.83.224
system_domain: paas.fwdns.org
system_domain_organization: micro_org
cc_props: cc
hm_props: health_manager_ccng
networks:
apps: default # TODO
management: default # TODO
# ROLE: data_servers
nats:
user: nats
password: nats
address: 10.192.83.226
port: 4222
authorization_timeout: 5
# nfs_server:
# network: "10.192.83.0/24"
# ROLE: data_servers
database: &database
db_scheme: postgresql
address: 10.192.83.226
port: 5432
roles:
- tag: admin
name: alladmin
password: alladmin
databases:
- tag: cc
name: ccdb
- tag: cc_ng
name: ccdb_ng
citext: true
- tag: uaa
name: uaadb
db: database
ccdb: *database
uaadb: *database
ccdb_ng:
db_scheme: postgres
address: 10.192.83.226
port: 5432
roles:
- tag: admin
name: alladmin
password: alladmin
databases:
- tag: cc
name: ccdb_ng
citext: true
# ROLE: control_servers
ccng: &ccng
description: "ODC's Cloud Application Platform for test."
# use_nginx: false
default_quota_definition: free
srv_api_uri: http://api.paas.fwdns.org
password: password
token: token
logging_level: debug
allow_debug: true
allow_registration: true
admins:
- [email protected]
admin_account_capacity:
memory: 2048
app_uris: 32
services: 16
apps: 16
default_account_capacity:
memory: 2048
app_uris: 32
services: 16
apps: 16
bulk_api_password: bulk_api_password
db_encryption_key: "secret"
staging_upload_user: staging
staging_upload_password: staging
external_host: api
uaa_resource_id: cloud_controller
uaa:
enabled: true
resource_id: cloud_controller
token_creation_email_filter: [""]
service_extension:
service_lifecycle:
max_upload_size: 5
bootstrap_admin_email: [email protected]
quota_definitions:
free:
total_services: 10
free_memory_limit: 256
paid_memory_limit: 1024
db_encryption_key: "secret"
cc: *ccng
router:
trace_key: 22 # FIXME nise_bosh need support default property value from spec.
offset: 0 # FIXME nise_bosh need support default property value from spec.
client_inactivity_timeout: 600
app_inactivity_timeout: 600
local_route: 127.0.0.1
status:
port: 8080
user:
password:
# ROLE: control_servers & data_servers
serialization_data_server:
use_nginx: false
upload_timeout: 10
port: 8090
upload_file_expire_time: 600
purge_expired_interval: 30
upload_token: upload_token
service_lifecycle:
download_url: 10.192.83.224 # control_servers
mount_point: /var/vcap/service_lifecycle
tmp_dir: /var/vcap/service_lifecycle/tmp_dir
resque: # data_servers
host: 10.192.83.226
port: 3456
password: password
nfs_server: # data_servers
address: 10.192.83.226
export_dir: /var/vcap/store/shared
serialization_data_server: # control_servers
- 10.192.83.224
stager:
max_staging_duration: 120
max_active_tasks: 20
queues:
- staging
# ROLE: control_servers
uaa:
cc:
token_secret: token_sercret
client_secret: client_secret
client:
autoapprove: false
admin:
client_secret: client_secret
login:
client_secret: client_sercret
batch:
username: username
password: password
port: 8100
catalina_opts: -Xmx128m -Xms30m -XX:MaxPermSize=128m
scim:
users:
- [email protected]|micr0@micr0|scim.write,scim.read,openid
client:
autoapprove:
- cf
- my
- portal
- micro
- support-signon
- login
clients:
support-services:
scope: scim.write,scim.read,openid,cloud_controller.read,cloud_controller.write
secret: ssosecretsso
id: support-services
authorized-grant-types: authorization_code,client_credentials
redirect-uri: http://support-signon.cf.vcap.me
authorities: portal.users.read
access-token-validity: 1209600
refresh-token-validity: 1209600
cf:
override: true
authorized-grant-types: password,implicit
authorities: uaa.none
scope: cloud_controller.read,cloud_controller.write,openid,password.write,cloud_controller.admin,scim.read,scim.write
no_ssl: true
login:
enabled: false
# ROLE: data_servers
vcap_redis:
address: 10.192.83.226
port: 3456
password:
maxmemory: 500000000
health_manager_ccng:
shadow_mode: disable
cc_partition: ng
---
name: cfservices
jobs:
- name: mysql_service
template:
- mysql_node_ng
- mysql_gateway
properties:
micro: true
nats:
user: nats
password: nats
address: 10.192.83.226
port: 4222
authorization_timeout: 5
uaa_client_id: cf
uaa_endpoint: http://uaa.paas.fwdns.org
uaa_client_auth_credentials:
username: [email protected]
password: micr0@micr0
service_lifecycle:
download_url: 10.192.83.224 # control_servers
mount_point: /var/vcap/service_lifecycle
tmp_dir: /var/vcap/service_lifecycle/tmp_dir
resque: # data_servers
host: 10.192.83.226
port: 3456
password: password
nfs_server: # data_servers
address: 10.192.83.226
export_dir: /var/vcap/store/shared
serialization_data_server: # control_servers
- 10.192.83.224
cc:
srv_api_uri: http://api.paas.fwdns.org
## =========== SERVICE SETTINGS ===========
mysql_gateway:
ip_route: 10.192.83.227
supported_versions: ["5.5"]
version_aliases:
current: "5.5"
default_plan: "100"
token: token
cc_api_version: v2
mysql_node:
ip_route: 10.192.83.227
available_storage: 2048
password: password
max_db_size: 256
supported_versions: ["5.5"]
default_version: "5.5"
max_tmp: 1024
# for Node
plan: "100"
# for Gateway
service_plans:
mysql:
"100":
description: "Shared server, shared VM, 1MB memory, 10MB storage, 10 connections"
free: true
job_management:
high_water: 450
low_water: 50
configuration:
capacity: 500
max_db_size: 10
key_buffer: 512
innodb_buffer_pool_size: 512
max_allowed_packet: 16
thread_cache_size: 128
query_cache_size: 128
max_long_query: 3
max_long_tx: 30
max_clients: 10
max_connections: 1000
table_open_cache: 2000
innodb_tables_per_database: 50
connection_pool_size:
min: 5
max: 10
backup:
enable: true
lifecycle:
enable: true
serialization: enable
snapshot:
quota: 1
worker_count: 5
warden:
enable: false
rm ~/.cf/tokens.yml
cf target http://api.192.168.33.10.xip.io
cf login [email protected]
cf create-service-auth-token --provider core --token token --label postgresql
cf create-service-auth-token --provider core --token token --label mysql
cf register --password micr0@micr0 --no-login --email [email protected]
cf register --password micr0@micr0 --no-login --email [email protected]
cf create-org apple
./cf-orgs.rb
cf login [email protected]
cf create-space staging
cf create-space development
cf create-space prodcution
./cf-spaces.rb
cf login [email protected]
cf apps
cd ~/Projects/vms/samples/sinatra-sample
cf push env
cf stop
cf apps
cf start
cf scale hi +3
cf apps
cf stats
cf health
cf scale hi -2
cf apps
cf stats
cf health
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment