-
-
Notifications
You must be signed in to change notification settings - Fork 102
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
platforms/aix.yml makes assumptions it should not be making, e.g., that everything is in /usr/bin #1581
Comments
OK. I have done some massageing of the test system - such as add a symbolic link python3.6 in /usr/bin. (Where it points is not relevant atm - only that this block fails:
|
OK. So, no comments yet. My humble opinion: The aix.yml should be a sort of process management flow. Step 1: verify that licensed requirements are installed - including - especially! things such as XLC and other items that come from IBM AIX BOS (aka, the DVD's). Step 2: if/when needed - verify that known issues have been addressed. IMHO: key in these first two steps is that no changes are made - other than perhaps copying a script for execution as is currently done for the "filesystems" config script. ** speaking of ** the part of the file systems script that checks on the hdisk minimum size would be moved to step 2 (above). The disk, better volume group size is, or it is not sufficient. The purpose: these are all elements that are, or should be, the responsibility, of an "AIX admin" aka system owner. Perhaps 'node.js and/or AdoptOpenJDK' have been 'owners', but to be truely supporting as an OSS project open to others you should protect yourself and not be installing things requiring a license AND - initially verifying a system is "ready to go" for the project (nodejs/AdoptOpenJDK). In following steps - the strategy I am considering now is to write scripts that get executed as a 'task' - again, taking the filesystems approach as a template:
_FYI: The need for a ramdisk has been resolved (by me). The issue is when lots (10's and 100's of thousands of temporary files are created) the lag introduced by the journal logging creates a lag that cannot be parallelized. Taking OSU as an example - as it uses vscsi only - the top speed for jfs(2) logging seems to be between 8 and 10Mbs. The 'ramdisk' is not faster than a regular filesystem - once jfs(2) logging is switched off. So the actual solution is to ensure that the project work directory is not being "JFS2" logged, e.g., /home is mounted with attribute log=NULL)._
|
Question: are these being installed to support 'yum', or are they actually needed by node.js/AdoptOpenJDK. If the answer is yes - yum needs these (as it does have some - imho - extraordinary pre-requisites (and yum.sh also has pre-requisites) -- I have a second question: which of these OSS packages are actually needed - explicitly - by node.js/AdoptOpenJDK?
|
Questions: are these names chosen because that is what GNU-Linix uses? Are there project scripts that scan these filenames? |
So, now finished reading through Will start reading #1391 , #710 , #1104 and perhaps others - to determine if they are all related to this issue - and determine an approach to getting them all resolved (aka closed). edit: some are already closed - my bad! |
You bring up many issues. While that is great, it's a lot of work to unpack for me. Maybe there's a way to make things more focused.
Ansible is a system management/configuration tool. As such, it's within Ansible's scope to install or re-configure things. The question is where you draw the line. For the sake of reproducibility, I try to move as many things into the domain of Ansible as possible. On Windows, autounattend.xml installs a minimal system with a known user account and activates WinRM. The rest is done by Ansible. On Debian/Ubuntu, d-i/subiquity install a minimal system including OpenSSH before Ansible takes over. In the same vein, it would be Ansible's responsibility to install XLC if that's possible with a download. As soon as you have to juggle DVDs, that's something that the admin has to do and should ideally happen before Ansible runs.
Requirements for building OpenJDK are listed on https://openjdk.java.net/groups/build/doc/building.html. OpenJ9 needs some additional things. The list above looks accurate. Why do you mention node.js?
Using scripts is the last resort when using Ansible. If possible, everything should happen in Ansible. If you use scripts (ksh, ...) you forego all advantages of Ansible. |
Well, I do not know ansible well enough to know what I forego. I did package ansible-2.10 using py36 and wheels - so ansible can be something local on the system. From the looks of things - the assumption has been than ansible is not available on AIX - and maybe that is why there is a dependency, if not preference, for using scripts on AIX. Note: learning curve applies. I am likely to make many assumptions that are incorrect - so ASSuME - aka ASS + u + (especially) ME. :) |
It's odd to install Ansible on the target system. You only do that if you have no other choice (for example provisioning Linux machines on Windows because Ansible does not run on Windows). Ansible is usually present on the sysadmin's machine (or some jump host). You run Ansible locally on that system. Ansible then connects over SSH (or WinRM) to the target system and performs its work there. To get an idea what Ansible can do for you: I found the book very approachable when I started learning Ansible. |
OK. But I need ansible (locally) to test. And, again, for testing - I can install it on the NIM system I have for installation and test how that behaves with targets. Might even make provisioning new lpars (and wpars) easier - separate from any projects. Probably in your references (thx!) above - but I will need to work out how the Ansible communicates (i.e., executes commands) on the target. Something such as how the So, along those lines #1583 becomes, imho, more relevant as far as managing the Ansible process goes and issues such as this one are more content related. |
FYI: I bought the book @aahlenst recommended, and have installed ansible on another system - so I can reinstall the test server and use ansible for final setup (outside of scope here, will be a side project). Comment: although added to October 2020 milestone - I cannot guarantee I have it ready "on time". But I'll do my best. |
The "October 2020" mileston is to indicate that it is being worked on during that timeframe and not a guarantee that we'll hold you to that it will be completed in there :-) |
Ref installing ansible on a remote system from the target, if you think the section at https://github.com/AdoptOpenJDK/openjdk-infrastructure/blob/master/FAQ.md#running-the-ansible-scripts-remotely-on-another-machine can be improved feel free to submit a PR :-) |
Let me get a bit more personal experience - and then I'll write. |
I know more, eg, Ansible is agentless, where/why warning messages come from.
If the environment is prepared, so that file copy is prepared, then that can work. My comment then, is that the playbook assumes this, and that the location is xxx. This can be enhanced using one of group|host_vars, depending on how licensed resources are made available, or pre-installed.
I am waiting for review and merge of #1633 before i start work on rewriting the current script as ansible tasks. |
As this was originally about the flat playbook aix.yml - I am closing this as no longer relevant. We are working from a new playbook structure and issues need to be addressed in those files. |
Just ran the playbook on an as generic (vanilla) system as possible.
Delta from fresh install:
Running the aix.yml playbook gives:
Issues:
Loop Squashing
. If this is part of aix.yml, I'll need help understanding where/what to change.The text was updated successfully, but these errors were encountered: