私は元気な私のシステムipとregexpを使ってファイルのIPアドレスを変更するのを手伝ってください。 "Djgroups.bind_address = < */WHATEVER/BLANK>"を "Djgroups.bind_address = 10.0.0.45"に置き換えたいとしましょう。単語を置き換えることが可能なregexpを使用して
これはtomcatインスタンスのためのものです。交換が必要なライン:
JAVA_OPTS="-Xms6144m -Xmx6144m -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Djgroups.bind_address="
私は以下のようにansibleを書いた:
- name: Verifying Instance IP Address
shell: grep Djgroups.bind_address /apache-tomcat-8.5.15_1/bin/catalina.sh|grep -v ^#|tr -s '=' '"'|cut -d '"' -f5
register: tomcat_instance_ip
- debug: msg='Tomcat instance has {{ tomcat_instance_ip.stdout }} set.'
- name: Updating Tomcat Instance with valid local IP address
replace:
dest: /apache-tomcat-8.5.15_1/bin/catalina.sh
regexp: '^(Djgroups.bind_address(?!.*\b{{ tomcat_instance_ip.stdout }}\b).*)$'
replace: '\1 {{ ip_address }}'
when: tomcat_instance_ip.stdout != ip_address
おかげで、サム
ソリューションの実際の結果はどのようなものですか?あなたはそれが正確に動作しないものについて具体的にしようとする必要があります。正規表現を試してみることもできます:https://regex101.com/ –
実際に私が書いた以下の行は、システムのIPアドレスを使ってip addressセクションを変更しません。 '\ 1 {{ip_address}}'は何か不足していますか? '、' regexp: '^(Djgroups.bind_address(?!。* \ b {{tomcat_instance_ip.stdout}}¥b)。*)$' –