2024年8月20日火曜日

gradle インストール tomcat build環境

・javaインストール
# cd /opt
# wget https://services.gradle.org/distributions/gradle-8.10-bin.zip
# unzip gradle-8.10-bin.zip
# ln -s   gradle-8.10 gradle
# vi /etc/profile.d/gradle.sh <<__EOF__
export GRADLE_HOME=/opt/gradle
export PATH=$GRADLE_HOME/bin:$PATH
__EOF__
$ source /etc/profile

$ cd Make
$ mkdir gradle_app
$ cd gradle_app
$ mkdir -p src/main/java/com/example
$ mkdir -p src/main/webapp/WEB-INF

$ vi build.gradle <<__EOF__
plugins {
  id 'war'
}

repositories {
  mavenCentral()
}

dependencies {
  // Jakarta Servlet 5.0 API
  // https://mvnrepository.com/artifact/jakarta.servlet/jakarta.servlet-api
  providedCompile 'jakarta.servlet:jakarta.servlet-api:5.0.0'
}

// Java 22
sourceCompatibility = 22
targetCompatibility = 22

// Application
version = '1.0'
__EOF__
$ vi src/main/webapp/WEB-INF/web.xml <<__EOF__
<?xml version="1.0" encoding="UTF-8"?>

<!-- Web Application Deployment Descriptor (Jakarta Servlet 5.0) -->
<web-app
  xmlns="https://jakarta.ee/xml/ns/jakartaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
  https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
  version="5.0">

  <servlet>
    <servlet-name>myjsp</servlet-name>
    <jsp-file>/myjsp.jsp</jsp-file>
  </servlet>

  <servlet-mapping>
    <servlet-name>myjsp</servlet-name>
    <url-pattern>/myjsp</url-pattern>
  </servlet-mapping>

</web-app>
__EOF__
$ vi src/main/java/com/example/MyServlet.java
$ vi src/main/webapp/myjsp.jsp

$ gradle build

$ tree
.
├── build
│   ├── classes
│   │   └── java
│   │       └── main
│   │           └── com
│   │               └── example
│   │                   └── MyServlet.class
│   ├── generated
│   │   └── sources
│   │       ├── annotationProcessor
│   │       │   └── java
│   │       │       └── main
│   │       └── headers
│   │           └── java
│   │               └── main
│   ├── libs
│   │   └── gradle_app-1.0.war
│   └── tmp
│       ├── compileJava
│       │   └── previous-compilation-data.bin
│       └── war
│           └── MANIFEST.MF
├── build.gradle
└── src
    └── main
        ├── java
        │   └── com
        │       └── example
        │           └── MyServlet.java
        └── webapp
            ├── WEB-INF
            │   └── web.xml
            └── myjsp.jsp

# cp -p  build/libs/gradle_app-1.0.war  /opt/tomcat/webapps/

URL:  localhost/gradle_app/myjsp


【SELINUX】
sestatus
sudo dnf install policycoreutils-python-utils
sudo grep tomcat /var/log/audit/audit.log
sudo chcon -R -t tomcat_exec_t /opt/tomcat
sudo chcon -R -t tomcat_var_lib_t /opt/tomcat/logs
sudo audit2allow -a -M tomcat-custom
sudo semodule -i tomcat-custom.pp
sudo restorecon -R -v /opt/tomcat




2024年8月8日木曜日

パラメータストア

# vi /etc/sysconfig/cxdnext/ssm-param-pre-exec.sh << __EOF__
#!/bin/bash
#----------------------------------------------
# パラメータストアからの環境取得
#----------------------------------------------
main(){
case "$1" in
"export" )
EVAL_COMMAND="echo export \${NAME##*/}=\$VALUE"
parameter_store
;;
*)
EVAL_COMMAND="systemctl set-environment \${NAME##*/}=\$VALUE"
parameter_store
;;
esac
}
parameter_store(){
# Load environmental variables
SSM_PARAMETER_STORE=$(aws ssm get-parameters-by-path --region ap-northeast-1 --path "/CXDNEXT/" --with-decryption)

echo ${SSM_PARAMETER_STORE} | jq -c '.Parameters[]' | while read i; do
NAME=$(echo $i | jq -r '.Name')
VALUE=$(echo $i | jq -r '.Value' | sed 's/\$/\\$/g')
eval $EVAL_COMMAND
done
}
main $@
__EOF__

※ 独自の環境変数を発生させる

#systemctl set-environment {NAME}={VALUE}
systemctl set-environment PARAMETER_STORE=ENABLE_DAYO

# cp -p /usr/lib/systemd/system/httpd.service  /etc/systemd/system/httpd.service

# vi /etc/systemd/system/httpd.service
ExecStartPre=/usr/bin/bash /etc/sysconfig/cxdnext/ssm-param-pre-exec.sh

systemctl stop httpd
systemctl disable httpd
systemctl enable httpd
systemctl start httpd

# systemctl status httpd
● httpd.service - The Apache HTTP Server
     Loaded: loaded (/etc/systemd/system/httpd.service; enabled; preset: disabled)


# vi /opt/tomcat/bin/setenv.sh  <<__EOF__
source <( sh /etc/sysconfig/cxdnext/ssm-param-pre-exec.sh export )
__EOF__













aurora-postgres リリースバージョン

 aws rds describe-db-engine-versions --engine aurora-postgresql --query '*[].[EngineVersion]' --output text --region ap-northeast-1 ...