Shell Ansible won';来自外壳模块的t寄存器变量
我在其他剧目中使用了Shell Ansible won';来自外壳模块的t寄存器变量,shell,ansible,sqlplus,Shell,Ansible,Sqlplus,我在其他剧目中使用了寄存器,效果很好。主要问题似乎是在将它与shell模块一起使用时 这是我目前的剧本 - name: Execute create-auth-key.sql shell: echo exit | sqlplus -l {{ data_security_schema_username }}/{{ data_security_schema_password }}@\(DESCRIPTION=\(ADDRESS=\(PROTOCOL=TCP\)\(HOST={{ data_sec
寄存器
,效果很好。主要问题似乎是在将它与shell
模块一起使用时
这是我目前的剧本
- name: Execute create-auth-key.sql
shell: echo exit | sqlplus -l {{ data_security_schema_username }}/{{ data_security_schema_password }}@\(DESCRIPTION=\(ADDRESS=\(PROTOCOL=TCP\)\(HOST={{ data_security_schema_hostname }}\)\(PORT={{ data_security_schema_port }}\)\)\(CONNECT_DATA=\(SERVER=dedicated\)\(SERVICE_NAME={{ data_security_schema_service_name }}\)\)\) @/tmp/create-auth-key.sql;
register: sqlplus-stdout
- name: Set Fact aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
set_fact:
checking: "{{ sqlplus-stdout.stdout }}"
- name: print aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
debug:
msg: "{{ checking }}"
sqlplus正在正确运行事务,但是我想过滤事务的输出以获取生成的身份验证密钥。为此,我需要一个变量中的sqlplus输出。下面是抛出的错误
FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'sqlplus' is undefined\n\nThe error appears to have been in '/var/lib/jenkins/.ansible/roles/test.auth-transaction/tasks/create-auth-key-and-obc.yml
为什么我的
set-fact
play无法识别sqlplus-stdout
?您不能在python变量中使用-
- name: Execute create-auth-key.sql
shell: echo exit | sqlplus -l {{ data_security_schema_username }}/{{ data_security_schema_password }}@\(DESCRIPTION=\(ADDRESS=\(PROTOCOL=TCP\)\(HOST={{ data_security_schema_hostname }}\)\(PORT={{ data_security_schema_port }}\)\)\(CONNECT_DATA=\(SERVER=dedicated\)\(SERVICE_NAME={{ data_security_schema_service_name }}\)\)\) @/tmp/create-auth-key.sql;
register: sqlplusstdout
- name: Set Fact aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
set_fact:
checking: "{{ sqlplusstdout.stdout }}"
- name: print aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
debug:
msg: "{{ checking }}"