рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкреНрд░рдХрд╛рд░ : рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ
рдЙрддреНрддрд░рджрд╛рдпреА рд╕рдВрд╕реНрдХрд░рдг : 1.9.4
рдкрд░реНрдпрд╛рд╡рд░рдг : рдУрдПрд╕рдПрдХреНрд╕ 10.11.1
рд╕рд╛рд░рд╛рдВрд╢ : uri
рдореЙрдбреНрдпреВрд▓ рдХреЗ body
рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдкрд╛рд░рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП lookup
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдХ TypeError: unhashable type
рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдкреНрд░рд╢реНрди рдЦреЛрд▓рд╛, рдФрд░ рд╕реЛрдЪрд╛ рдХрд┐ рдЗрд╕реЗ рдпрд╣рд╛рдВ рднреА рдкреЛрд╕реНрдЯ рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
рдкреНрд░рдЬрдирди рдХреЗ рд▓рд┐рдП рдХрджрдо :
рдпрд╣ рдХрд╛рд░реНрдп рдЪрд▓рд╛рдПрдБ:
- name: Post
uri:
url: https://hooks.slack.com/endpoint
method: POST
return_content: no
HEADER_Content-Type: "application/json"
body: "{{ lookup('template', '../templates/my.json.j2', convert_data=False) }}"
рдЗрд╕рдХреЗ рд╕рд╛рде my.json.j2
:
{
"channel": "chatops",
"username": "Deploy",
"text": "TEST Deploy!",
"icon_emoji": ":ghost:"
}
рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рднреАрддрд░ JSON рдХреЛ рд╕рд┐рдВрдЧрд▓ рд▓рд╛рдЗрди рдореЗрдВ рдлреЛрд▓реНрдб рдХрд░рдиреЗ рдХрд╛ рд╕рдорд╛рди рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИред lookup
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ to_json
рдорд╛рдзреНрдпрдо рд╕реЗ
рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо : рдЙрдЪрд┐рдд JSON рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдкрд░ рднреЗрдЬрд╛ рдЧрдпрд╛
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдгрд╛рдо : TypeError: unhashable type
рддреНрд░реБрдЯрд┐; рд╕рд╛рде рд╣реА, рдХреБрдЫ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рджреНрд╡рд╛рд░рд╛ рдПрдХ not valid JSON
рддреНрд░реБрдЯрд┐ рд▓реМрдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдареАрдХ рд╕реЗ рдирд╣реАрдВ рднреЗрдЬрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рдирдорд╕реНрддреЗ!
Ansible рдореЗрдВ рдЖрдкрдХреА рд░реБрдЪрд┐ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред
рдпрд╣ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╢реНрди рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдЪреАрдЬреЛрдВ рдХреЛ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдпрд╛ рдЖрдИрдЖрд░рд╕реА рдЪреИрдирд▓ рдкрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рд╡рд╣рд╛рдВ рд░реБрдХ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВрдЧреЗред рдпрд╣ рд╣рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдЯреНрд░реИрдХрд░ рдХреЛ рдмрдЧ, рдкреБрд▓ рдЕрдиреБрд░реЛрдз, рдЖрд░рдПрдлрдИ рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рд▓рд┐рдП рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рд╣рдо рдЖрдкрдХреЛ рд╕реВрдЪреА рдпрд╛ рдЖрдИрдЖрд░рд╕реА рдореЗрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реИрдВред рдзрдиреНрдпрд╡рд╛рдж!
рдпрд╣ 2.0 рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдмрд╕ _body_format: json_ рдХреЛ uri рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ (рдФрд░ _convert_data=False_ рд╣рдЯрд╛рдПрдВ)
рд╕рд╛рде рд╣реА, рдмреЙрдбреА_рдлреЙрд░реНрдореИрдЯ рдХреЛ рдЬреЗрд╕рди рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЛ рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рд╢реАрд░реНрд╖рд▓реЗрдЦ рд╕реНрд╡рдпрдВ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдирдорд╕реНрддреЗ, рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреЛрдИ рд╕рдорд░реНрдерди:
http://stackoverflow.com/questions/43117635/ansible-variable-not-rendered-inside-json-object
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдпрд╣ 2.0 рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдмрд╕ _body_format: json_ рдХреЛ uri рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ (рдФрд░ _convert_data=False_ рд╣рдЯрд╛рдПрдВ)
рд╕рд╛рде рд╣реА, рдмреЙрдбреА_рдлреЙрд░реНрдореИрдЯ рдХреЛ рдЬреЗрд╕рди рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЛ рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рд╢реАрд░реНрд╖рд▓реЗрдЦ рд╕реНрд╡рдпрдВ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред