Möchte man mittels Ansible z.B. in eine Datenbank einen Wert hinzufügen, jedoch nur, wenn dieser noch nicht besteht, kann man das mittels einer Vorherigen SQL-Abfrage machen:
- name: "Get setting: myName" command: mysql --defaults-file=/root/.my.cnf myDatabase -Ns -e "select value from settings where name='myName';" register: setting_myName changed_when: setting_myName.stdout != "12345" - debug: msg="{{ setting_myName.stdout }}" - name: "Insert setting into database" mysql_db: login_host: "myDBhost" login_user: "myDBuser" login_password: "myDBPass" name: "myDatabase" state: "import" target: "/tmp/set_setting_myName.sql" when: setting_myName.stdout != "12345" |
Zuerst holt man sich den Wert aus der Datenbanktabelle und ändert diesen nur, wenn er noch nicht da steht (when: setting_myName.stdout != „12345“).