小编mau*_*udv的帖子

ansible定义时间戳的变量

在设置带有时间戳的变量时,我遇到麻烦,通过我的剧本使用它.我想要实现的是在两个服务器中使用发布文件夹名称,并使用相同的时间戳标记新的数据库.

我在/ ansibleproject/vars /中名为common.yml的文件中定义这些变量.

timestamp: "{{lookup('pipe', 'date +%Y%m%d%H%M%SZ')}}"
release_name: '{{ repo_tag }}_{{timestamp}}'
new_db_name: '{{release_name}}'
Run Code Online (Sandbox Code Playgroud)

然后,在任务文件上,我正在创建这样的目录:

- name: "Create new release folder"
  file: path={{new_release_path}} state=directory mode=2775 owner=deployment group=deployment
  become: yes
Run Code Online (Sandbox Code Playgroud)

在一个单独的任务文件中,我正在创建这样的数据库:

- name: "Prepare db user rights"
  shell: echo "CREATE DATABASE \`{{new_db_name}}\` CHARACTER SET utf8 COLLATE utf8_general_ci; " > db_create.sql
  when: inventory_hostname ==  groups['app'][0]

- name: "Create new database for new release"
  shell: mysql -h {{mysql_server}} -u{{mysql_username}} -p{{mysql_password}} < db_create.sql
  when: inventory_hostname ==  groups['app'][0]
Run Code Online (Sandbox Code Playgroud)

在我正在部署的两台服务器上创建的文件夹具有相同的时间戳:

drwxrwsr-x  2 deployment deployment 4096 Mar …
Run Code Online (Sandbox Code Playgroud)

ansible

1
推荐指数
1
解决办法
5999
查看次数

标签 统计

ansible ×1