AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 970405
Accepted
PrestonDocks
PrestonDocks
Asked: 2019-06-07 07:56:46 +0800 CST2019-06-07 07:56:46 +0800 CST 2019-06-07 07:56:46 +0800 CST

Ansible 多个主机在一个角色中

  • 772

随着脚本的进行,如何编写单个角色并连接到不同的主机?

这是我想做的一个例子,但我收到一个错误,如下所示。

ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path.

The error appears to be in '/etc/ansible/roles/customer_setups/microlight/customer_app_template/tasks/main.yml': line 3, column 3, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

# tasks file for /etc/ansible/roles/customer_app_template
- hosts: synbill-apps
  ^ here

---
# tasks file for /etc/ansible/roles/customer_app_template
- hosts: synbill-apps
  tasks:
  - name: Clone syndicatebilling repository into a new customer app
    git:
      repo: [email protected]:xxxx/xxx.git
      version: syndicateBookings
      dest: /var/www/html/microlight
      force: yes
  - name: run npm install
    npm:
      path: /var/www/html/microlight
  - name: copy .env file
    copy:
      src: files/.env
      dest: /var/www/html/microlight/.env
  - name: create new app key
    command: chdir=/var/www/html/microlight adonis key:generate
  - name: migrate database
    command: chdir=/var/www/html/microlight adonis migration:run --force
  - name: start the app
    command: chdir=/var/www/html/microlight pm2 start server.js --name placeholder_domain
  - name: save the pm2 config
    command: chdir=/var/www/html/microlight pm2 save
- hosts: synbill-db
  - name: "Install Mysql Client package"
    apt:
      name: "{{ item }}"
      state: present
    with_items:
      - mysql-client
      - python3-dev
      - libmysqlclient-dev
      - python3-mysqldb
  - name: Create syndicate database
    mysql_db:
      name: microlight
      state: present
      login_user: simon
      login_password: xxxxxxxxxxx
- hosts: synbill-apps
  .....now the db is setup do some more work on the apps server
- hosts: synbill-webserver
  .... now setup the virtual host
- hosts: synbill-db
  .... now update the database to so user knows everything is setup.
ansible
  • 1 1 个回答
  • 5506 Views

1 个回答

  • Voted
  1. Best Answer
    Henrik Pingel
    2019-06-07T11:24:05+08:002019-06-07T11:24:05+08:00

    文件中的任务tasks.yml看起来不太适合角色抽象。我只想写一本剧本。

    为了能够执行剧本,您需要在此处添加一个“任务”部分:

    - hosts: synbill-db
      tasks:
      - name: "Install Mysql Client package"
    

    用角色抽象代码我看到的最简单的方法是编写两个角色,一个用于应用程序,一个用于数据库。

    • 1

相关问题

  • 重复的 Ansible 任务

  • 无法形成站点中的文件的链接,该链接可用于使用 ansible 在远程服务器中启用的目录站点?

  • 如何执行 ansible 的特定角色?

  • Ansible 和 rbash

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve