nla / jvmctl Goto Github PK
View Code? Open in Web Editor NEWJava app deployment tool
License: MIT License
Java app deployment tool
License: MIT License
Some people want to run scripts post-deploy. For example:
Sometimes they abuse nla-deploy.sh to try to do these things. It usually ends in tears.
We maybe should support something like this officially but it's not clear to me exactly how the feature should work.
Maybe give up and print a deprecation warning instead.
So that if you mount it on another host the link is not broken.
It seems on RHEL 9 the contents of /proc/{pid}/cgroup
changed from
1:name=systemd:/system.slice/jvm:myapp.service
to
0::/system.slice/jvm:myapp.service
This causes logductd to fail to detect the systemd unit name and ignore all received log messages.
The config directory becomes a git repo and jvmctl config automatically commits to it. To avoid dealing with authentication data leaks etc no pushing to a central server (the intent is you could pull if desired for backups). Add a new history command that runs git log -p.
Migration mechanism: the first config change should git init and commit everything.
https://github.com/nla/jvmctl/blob/master/jvmctl/jvmctl/jvmctl.py#L427
In this particular instance I need it for running Solr as a command line application because is scans the working directory for contexts.
Looks like something like this in the the conf file would be basic to add:
WORKING_DIR=/some/random/path
[gpendleb@alfarin ~]$ jvmctl newspapers-browse restart
Traceback (most recent call last):
File "/opt/bin/jvmctl", line 911, in <module>
if __name__ == '__main__': main()
File "/opt/bin/jvmctl", line 904, in main
sys.exit(commands[cmd](Node(node), *args) or 0)
File "/opt/bin/jvmctl", line 503, in restart
node.autoregister()
File "/opt/bin/jvmctl", line 441, in autoregister
systemd_register(self)
File "/opt/bin/jvmctl", line 807, in systemd_register
with os.fdopen(os.open(env_file, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0600 ), 'w') as f:
OSError: [Errno 13] Permission denied: '/var/cache/jvmctl/base/newspapers-browse /environment'
[gpendleb@alfarin ~]$ sudo jvmctl newspapers-browse restart
The name "gs-rest-service-master" confuses the logging daemon as it does a regex search for "jvm:(.+).service". The . should be a literal not a wildcard match so we need to fix it to match with .service instead.
Need to remove systemd unit file and /var/cache/jvmctl/base/$NODE
Often we're asked to help compile a list of applications a particular branch is responsible for.
Perhaps jvmctl could asynchronously push the app name, branch version and hostname to a central repository on deploy and or start.
An optional conf variable for owner could be added and pushed aswell.
Start time could also be included, which would help show application uptimes in an app dashboard or something of that kind.
It might help to maintain an application register.
Just an idea..
Probably need an install section in the generated systemd unit file:
[Install]
WantedBy=multi-user.target
Also make sure it calls systemctl enable
at some point.
This change conflicts with our model of a read-only jetty base directory:
jetty/jetty.project@837a36e
A second commit makes the properties file path configurable
jetty/jetty.project@aca2aa5
So probably our best bet is to specify a path in /var/run/. Presumably older versions of Jetty error when given that argument though so we'll have to gate it on jetty version somehow.
Workarounds for now either:
Suggested by Shaun D
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.