Ansible-无法通过脚本创建隐藏文件

时间:2019-02-25 11:10:09

标签: ansible createfile

我正在学习Ansible,并且作为学习练习的一部分,我写了一本ansible剧本,其内容如下-

  • 根据我们的要求在远程服务器上设置MySQL数据库备份目录结构
  • 将一些脚本复制到远程服务器
  • 在远程服务器上运行数据库/用户创建脚本

除了2件事之外,一切都很好-

  1. 数据库/用户创建脚本需要mysql root用户密码,如果我在本地运行,则提示我在运行时输入。但是,当从ansible远程运行时,服务器不会要求输入密码并且脚本会失败。作为解决方法,我在远程服务器上的脚本中硬编码了密码,并且可以正常工作。

  2. 在此脚本中,我正在创建一个隐藏文件。同样,在本地运行时,会创建隐藏文件,但是会从远程服务器上创建隐藏文件,似乎创建该隐藏文件的命令会被忽略

---
- hosts: database-servers
  tasks:
  - name: create directories, if not existing
    file:
      path: "{{ item }}"
      state: directory
      mode: 0775
    become: yes
    become_user: mysql
    with_items:
    - /my/location/backups/db1
    - /my/location/scripts
    - /my/location/backups/db2
    - /my/location/log
    - /my/location/bk/scripts
  - name: copy files to db servers
    copy:
      src: "{{ item }}"
      dest: "/my/location/scripts"
      mode: 0755
    become: yes
    become_user: mysql
    with_fileglob:
      - "/my/location/scripts/*.sh"
  - name: run script with argument
    script: /my/location/scripts/createDbUser.sh --host=localhost --database=testdb --user=test

用于创建隐藏文件的代码是-

CRED_FIL="/some/location/scripts/.selp"
BACK_PASS=$(generatePassword)!
--
--
--
function createBackupUserCredentialFile()
{
  if [[ ! -e ${CRED_FIL} ]]; then
    echo ${BACK_PASS} > ${CRED_FIL}
    chmod 640 ${CRED_FIL}
    _success "Credential file created.."
  else
    _success "Credential file existing. No change is made"
  fi
}

0 个答案:

没有答案