aaahd 发表于 2018-7-30 07:44:28

Ansible 一步一步从入门到精通(四)上

1 ---  
2 - hosts:10.0.0.132
  
3   tasks:
  
4   - name: Import EPLE and Remi GPG key. #导入EPEL和Remi GPG校验码
  
5   rpm_key:"key={{ item}} state=present"
  
6   with_items:
  
7   - "https://fedoraproject.org/static/0608B895.txt"
  
8   - "http://rpms.famillecollet.com/RPM-GPG-KEY-remi"
  
9
  
10   - name: Install Remi repos #安装EPEL和Remi仓库
  
11   command:"rpm -Uvh --force {{ item.href }} creates={{ item.creates}}"
  
12   with_items:
  
13   - {
  
14       href: "http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.          rpm",
  
15       creates:"/etc/yum.repos.d/epel.repo" # creates参数指定如果有这个repo文件的话,就不执行上面的command
  
16   }
  
17   - {
  
18       href: "http://rpms.famillecollet.com/enterprise/remi-release-6.rpm",
  
19       creates:"/etc/yum.repos.d/remi.repo"
  
20   }
  
21
  
22   - name: Install Node.js and npm.   # npm是node.js的包管理工具
  
23   yum:name=npm state=present
  
24
  
25   - name: Install Forever (to run our node.js app) # forever是node.js的工具,用来运行应用,global指定这个应用可以给所有的用户使用
  
26   npm:name=forever global=yes state=latest
  
27
  
28   - name: Ensure Node.js app folder exist. # node_app_ocation 变量可以通过命令行获取
  
29   file: "path={{ node_apps_location}} state=directory"
  
30
  
31   - name: Copy example Node.js app to server.
  
32   copy: "src=app dest={{ node_apps_location }}"
  
33
  
34   - name: Install app dependencies defined in package.json # 指定package.json的目录即可
  
35   npm:path={{ node_apps_location}}/app
  
36
  
37   - name: Check list of running Node.js apps.
  
38   command:forever list
  
39   register: forever_list# 注册command的运行结果到这个变量
  
40   changed_when: false   # 只是显示,不改变服务器状态
  
41
  
42   - name: Start example Node.js app.
  
43   command:"forever start {{ node_apps_location}}/app/app.js"
  
44   when: "forever_list.stdout.find('{{ node_apps_location}}/app/app.js') == -1"
  
   # 避免启动多个app实例,只有forever list中没有node_app_location这个路径存在的时候,才运行这个app
页: [1]
查看完整版本: Ansible 一步一步从入门到精通(四)上