Sas Viya Deployment - sas

I am installing sas viya on linux , i have created a playbook using Ansible , edited both the file i.e. vars.yml and inventory.ini. Now when I try to test before deployment using command "ansible-playbook system-assessment.yml".
This throughs an error, mentioned in error section:
I have tried to edit var.yml and inventory.ini as per the guide from sas.
fatal: [deployTarget]: FAILED! => {"changed": false, "failed_when_result": true, "msg": "At least one pre-flight check failed on deployTarget: Could not connect to host(s): 41.41.41.41, sas_visual_analytics."}

did you get the assessment playbook to work?
You can always run the playbook with extra logging to see what is happening.
ansible-playbook -i inventory.ini system-assessment.yml -vvvv

Related

Cannot deploy the program to devnet with anchor

First, I tried with deploying on localhost with anchor deploy it works fine. But then I changed the cluster to devnet, changed Anchor.toml and lib.rs file with the address I got after anchor build. Then tried with anchor deploy --provider.cluster devnet
Changed the solana cluster also solana config set --url https://api.devnet.solana.com, then solana program deploy /target/deploy/voter.so. Still getting the error for both of the methods.
Deploying workspace: https://api.devnet.solana.com
Upgrade authority: /home/XXXXXX/.config/solana/id.json
Deploying program "voter"...
Program path: /home/<user>/workspace/voter/target/deploy/voter.so...
Error: Account xxxx is not an upgradeable program or already in use
There was a problem deploying: Output { status: ExitStatus(unix_wait_status(256)), stdout: "", stderr: "" }.
First check if devnet is up and running with: https://status.solana.com
Then check if you have SOL: solana balance
^Usually it's one of those two!
I hope this helps!
The error gives the info: Error: Account xxxx is not an upgradeable program or already in use
Check the address you're trying to deploy to. You may need to change the program address to a new one if it's already being used by another program or user.

Running Ansible playbook using AWS Systems Manager (skipping: no hosts matched)

I'm trying to run an ansible playbook from Github repo using AWS Systems Manager. Basically, I'm running the Ansible playbook from the AWS Systems Manager Console --> Run command --> AWS-ApplyAnsiblePlaybooks --> Specify the Github repo location --> Choose the target instances --> Run.
The actual Ansible command running behind the scene is in the following format:
ansible-playbook -i localhost -c local -e <extra variables> <verbose> <playbookfile>
My repo has a hosts (ini format) file as shown below:
[dev]
server.example.com
And my playbook looks like below:
---
- name: test run
hosts: dev
become: true
When I run the playbook, I get the errors below:
PLAY [test run] ********************************************************
skipping: no hosts matched
[WARNING]: Could not match supplied host pattern, ignoring: dev
It works fine if I change 'hosts: all' in the playbook instead of the group name 'dev'. But, I just only want to run against a group.
Any idea why it is not picking up the hosts? Can someone help me to resolve this issue, please?

AWS: ERROR: Pre-processing of application version xxx has failed and Some application versions failed to process. Unable to continue deployment

Hi I am trying to deploy a node application from cloud 9 to ELB but I keep getting the below error.
Starting environment deployment via CodeCommit
--- Waiting for Application Versions to be pre-processed --- ERROR: Pre-processing of application version app-491a-200623_151654 has
failed. ERROR: Some application versions failed to process. Unable to
continue deployment.
I have attached an image of the IAM roles that I have. Any solutions?
Go to your console and open up your elastic beanstalk console. Go to both applications and environments and delete them. Then in your terminal hit
eb init #Follow instructions
eb create --single ##Follow instructions.
It would fix the error, which is due to some application states which are failed. If you want to check those do
aws elasticbeanstalk describe-application-versions
I was searching for this answer as a result of watching a YouTube tutorial for how to pass the AWS Certified Developer Associate exam. If anyone else gets this error as a result of that tutorial, delete the 002_node_command.config file created in the tutorial and commit that change, as that is causing the error to occur.
A failure within the pre-processing phase, may be caused by an invalid manifest, configuration or .ebextensions file.
If you deploy an (invalid) application version using eb deploy and you enable the preprocess option, The details of the error will not be revealed.
You can remove the --process flag and enable the verbose option to improve error output.
in my case I deploy using this command:
eb deploy -l "XXX" -p
And can return a failure when I mess around with .ebextensions:
ERROR: Pre-processing of application version xxx has failed.
ERROR: Some application versions failed to process. Unable to continue deployment.
With that result I can't figure up what is wrong,
but deploying without -p (or --process)and adding -v (verbose) flag:
eb deploy -l "$deployname" -v
It returns something more useful:
Uploading: [##################################################] 100% Done...
INFO: Creating AppVersion xxx
ERROR: InvalidParameterValueError - The configuration file .ebextensions/16-my_custom_config_file.config in application version xxx contains invalid YAML or JSON.
YAML exception: Invalid Yaml: while scanning a simple key
in 'reader', line 6, column 1:
(... details of the error ...)
, JSON exception: Invalid JSON: Unexpected character (#) at position 0.. Update the configuration file.
Now I can fix the problem.

Saving AWS instance IP address to variable in groovy script fails build

Challenge:
I have a groovy script running a few AWS instances as nodes in parallel with security group enabled SSH and HTTP. The public IPv4 is available from instance via http://169.254.169.254/latest/meta-data/public-ipv4. I need to save the output from this request to a variable for further usage.
That is, how my current code looks like (on node):
String ip = sh([returnStdout: true, label: 'save ip', script: 'curl -s http://169.254.169.254/latest/meta-data/public-ipv4']).toString().trim()
println("Status:", ip)
The build exits with ERROR: script returned exit code 1.
Failed Experiments:
I tried:
sh label: 'save ip', script: 'wget -qO ipv4.txt http://169.254.169.254/latest/meta-data/public-ipv4'
String ip = readFile 'ipv4.txt'
println("Status:", ip)
and now it fails with ERROR: script returned exit code 1, too, but in readFile. I even tried moving the readFile part downwards in code, and he passes all steps after sh until readFile. If I only run the sh part without saving output to variable or reading the file, the build finishes successful (or as successful as it can be without this information). Example console output below:
+ curl -s http://169.254.169.254/latest/meta-data/public-ipv4
18.202.253.1[Pipeline] unstash
[Pipeline] sh
I checked:
if the file exists (it does)
the content of the file (something like: 34.244.77.254 without line break)
the output of the URL (something like: 34.244.77.254 without line break)
the output of sh with returnStatus (crazy thing is, I got the IP on console log in this case and build still just fails with exit 1)
I also tried (just for check, suspecting some error in having an IP in return value):
sh label: 'save ip', script: 'wget -qO ipv4.txt http://169.254.169.254/latest/meta-data/ami-id'
String ip = readFile 'ipv4.txt'
println("Status:", ip)
and it behaved as with public-ipv4.
Additional setup information:
Jenkins 2.150.3 LTS
Amazon EC2 plugin 1.42
AMI images started Ubuntu 16.04LTS, Ubuntu 18.04LTS, Debian 9.7
I'm thankful for any ideas. I'm a bit stuck here and neither StackOverflow nor Google did return any results.
Edit
Regarding #JRichardsz comment, I tried:
String ip = sh([returnStatus: true, label: 'save ip', script: 'curl -s ipv4.txt https://www.google.com']).toString().trim()
println("Status:", ip)
and got ERROR: script returned exit code 1, too.
Solution
tl;dr: The devil was in the details. This is the working snippet:
String ip = sh([returnStdout: true, label: 'save ip', script: 'curl -s http://169.254.169.254/latest/meta-data/public-ipv4']).toString().trim()
println(ip)
The watchful observer will notice, that only the second line changed. Yeah, println in Groovy wants only one argument and doesn't concatenate them, as e.g. Python does.
The long version: I tried again with this snippet:
def ip = sh returnStdout: true, script: "date"
println("Status:", ip)
on a local machine - just to be sure, returnStdout works at all - and got:
java.lang.NoSuchMethodError: No such DSL method 'println' found among steps [<java stack trace goes here ... ]
So the error wasn't inside sh at all.
Finally I can say, that the Java stack-trace appearing also while executing Groovy on AWS nodes, might have been helpful in this matter.
Thank you to all that have read this question and have tried to find an answer!

I am deploying with 'eb deploy' in aws but getting the following error

I am using 'eb deploy' for deploying my commits but getting this error
WARNING: You have uncommitted changes.
Creating application version archive "6fea".
Uploading: [##################################################] 100% Done...
INFO: Environment update is starting.
INFO: Deploying new version to instance(s).
ERROR: [Instance: i-10d1f9ec] Command failed on instance. Return code: 126
Output: /bin/sh: ./scripts/update-ftp-dns.sh: /bin/sh^M: bad interpreter: No such file or directory.
container_command 07-update_ftp_dns in .ebextensions/03-vsftpd.config failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.
INFO: Command execution completed on all instances. Summary: [Successful: 0, Failed: 1].
INFO: New application version was deployed to running EC2 instances.
ERROR: Update environment operation is complete, but with errors. For more information, see troubleshooting documentation.
Please help me to solve this.
The error message is a bit hidden, but it's in there:
Output: /bin/sh: ./scripts/update-ftp-dns.sh: /bin/sh^M: bad interpreter: No such file or directory.
If I had to guess, you have a line break with both a line feed and a carriage return in it. It's treating the carriage return character as if it's part of the name of the executable.
Make sure that you've converted the /scripts/update-ftp-dns.sh script so that it uses Unix line endings only.
See ./configure : /bin/sh^M : bad interpreter
I had something similar, and the cause was having Git's autocrlf value set to true. What this means is that Git will convert the file to a Windows-formatted one when git checkout is run - which unfortunately means that the Elastic Beanstalk tool tries to upload Windows-formatted files to your Linux server, which will manifest in errors like this.
I fixed it by switching autoclrf to false, and committing the relevant file again. Do be aware of the repercussions of this however.