=====ansible-go tree=====tree ansible-go -L 2ansible-go├── ansible.cfg├── docs│   └── ansible-install├── examples│   ├── ansible.cfg│   ├── group_vars│   ├── inventory│   └── playbooks├── roles│   ├── apache│   ├── appserver│   ├── aws│   ├── aws_ec2│   ├── galaxy│   ├── geoipupdate│   ├── haproxy│   ├── innodb_data_restore│   ├── keepalived│   ├── mysql│   ├── mysqlcluster│   ├── ndbcluster_data_restore│   ├── node.4dfornine99│   ├── node.backcall│   ├── node.bigtwo_p2p│   ├── node.bigtwo_webonline│   ├── node.daemon│   ├── node.fbsse│   ├── node.flashgame_security│   ├── nodejs10│   ├── nodejs7│   ├── node.ncpay_grabber│   ├── node.ncpay_rpm│   ├── node.ncpay_transferin│   ├── node.ncpay_transferout│   ├── node.nodegrabasc_bot│   ├── node.p2p_bot│   ├── node.rocketchat│   ├── node.spay_daemon│   ├── php│   ├── proxmox│   ├── redis│   ├── repo-epel│   ├── repo-ius│   ├── selinux│   ├── system.chrony│   ├── system.common│   ├── system.files│   ├── system.firewalld│   ├── system.hostname│   ├── system.hosts│   ├── system.ntpd│   ├── system.packages│   ├── system.resolv_conf│   ├── system.rsync│   ├── system.rsyslog│   ├── system.services│   ├── system.snmp│   ├── system.sshd│   ├── system.sysctl│   ├── system.timezone│   ├── system.update│   └── zabbix-agent├── staging    ├── ansible.cfg    ├── docker-containers    ├── group_vars    ├── inventory    ├── inventory-gwj    └── playbooks        =====定义role  node.ncpay_transferin=====ls roles/node.ncpay_transferin/defaults    默认变量,优先级最初  tasks       role须要执行的工作templates   模版文件,个别搁置文件=====设置defaults=====vi roles/node.ncpay_transferin/defaults/main.yml <code>---ncpay_transferin_files:  - ncpay-transferin@.service  - ncpay-transferin.targetncpay_transferin_services:  - ncpay-transferin.target  - ncpay-transferin@180.service  - ncpay-transferin@181.service  - ncpay-transferin@182.service  - ncpay-transferin@183.service  - ncpay-transferin@184.service  - ncpay-transferin@3000.service  - ncpay-transferin@3001.service  - ncpay-transferin@3002.service  - ncpay-transferin@3003.service  - ncpay-transferin@3004.service  - ncpay-transferin@3005.service  - ncpay-transferin@3006.service  - ncpay-transferin@3007.service  - ncpay-transferin@3008.service  - ncpay-transferin@3009.service  - ncpay-transferin@3010.service  - ncpay-transferin@3011.service  - ncpay-transferin@3012.service  - ncpay-transferin@3013.service  - ncpay-transferin@3014.service  - ncpay-transferin@3035.service  - ncpay-transferin@3036.service  - ncpay-transferin@3037.service  - ncpay-transferin@3038.service  - ncpay-transferin@3039.service  - ncpay-transferin@3055.service  - ncpay-transferin@3056.service  - ncpay-transferin@3057.service  - ncpay-transferin@3058.service  - ncpay-transferin@3059.service  - ncpay-transferin@3260.service  - ncpay-transferin@3261.service  - ncpay-transferin@3262.service  - ncpay-transferin@3263.service  - ncpay-transferin@3264.service  - ncpay-transferin@3390.service  - ncpay-transferin@3391.service  - ncpay-transferin@3392.service  - ncpay-transferin@3393.service  - ncpay-transferin@3394.service</code>=====设置tasks=====vi roles/node.ncpay_transferin/tasks/main.yml<code>---- name: copy transferin file  template:    src: "templates/{{ item }}"    dest: /etc/systemd/system/  with_items: "{{ ncpay_transferin_files }}"- name: ncpay transferin start and enable  service:    name: "{{ item }}"    state: started    enabled: yes  with_items: "{{ ncpay_transferin_services }}"</code>=====设置 templates=====vi roles/node.ncpay_transferin/templates/ncpay-transferin@.service<code>[Unit]Description=NodeJS Ncpay Transferin Bot Requires=network.target After=syslog.target network.target PartOf=ncpay-transferin.target[Service]ExecStartPre=/bin/sh -c "echo PUBLIC_PORT=`expr 20000 + %i` >> /run/ncpay-transferin-%i.env"ExecStartPre=/bin/sh -c "echo INTERNAL_PORT=`expr 20000 + %i` >> /run/ncpay-transferin-%i.env"ExecStopPost=/bin/rm /run/ncpay-transferin-%i.envEnvironmentFile=-/run/ncpay-transferin-%i.envExecStart=/usr/bin/node /var/nodejs/bank-scripts/index.js ExecStop=/bin/kill -SIGTERM $MAINPID TimeoutStopSec=360s StandardOutput=syslog StandardError=syslog SyslogIdentifier=NodeJS ncpay-transferin-%iUser=rootGroup=root KillSignal=SIGTERM KillMode=mixed Restart=on-failure RestartSec=10StartLimitInterval=30s StartLimitBurst=2 Environment=NODE_ENV=staging Environment=ROBOTID=%i Environment=ROBOTTYPE=4Environment=APP_NAME=ncpay Environment=SERVERID=1Environment=XVFBSERVERNUM=%iEnvironment=INTERNAL_IP=xxxxxEnvironment=PUBLIC_IP=xxxxEnvironment=ROOTDIR=/var/nodejs/bank-customer-transferin/ Environment=NODE_PATH=/usr/lib/node_modules [Install] WantedBy=ncpay-transferin.target</code>vi roles/node.ncpay_transferin/templates/ncpay-transferin.target <code>[Unit]Description=NodeJS NCPAY transferin target allowing to start/stop all ncpay-transferin@.service instances at oncePartOf=ncpay.target[Install]WantedBy=multi-user.target ncpay.target</code>=====定义host=====vi ansible-go/staging/inventory<code>[nodejs_ncpay]x.x.x.x</code>=====定义playbook 设置或者重写变量,调用role=====vi staging/playbooks/nodejs_ncpay.yaml<code>- hosts: nodejs_ncpay  vars:    update_system: yes    common_timezone: Asia/Kuala_Lumpur    hostname: nodejs_ncpay    firewalld_rich_rules:      - rule: rule family="ipv4" source address="10.1.0.0/16" port port="0-65535" protocol="tcp" accept      - rule: rule family="ipv4" source address="10.0.1.0/24" port port="18000-19999" protocol="tcp" accept      - rule: rule family="ipv4" source address="10.10.1.0/24" accept      - rule: rule family="ipv4" source address="0.0.0.0/0" port port="30001-40000" protocol="tcp" accept      - rule: rule family="ipv4" source address="0.0.0.0/0" port port="50001-60000" protocol="tcp" accept      - rule: rule family="ipv4" source address="0.0.0.0/0" port port="59000-59009" protocol="tcp" accept    nodejs_npm_global_packages:      - name: aws-sdk        version: 2.395.0      - name: debug        version: 4.1.1      - name: iconv-lite        version: 0.4.19      - name: jimp        version: 0.3.7      - name: koa-router        version: 8.0.8      - name: mysql        version: 2.13.0      - name: request        version: 2.88.2      - name: underscore        version: 1.8.3    nodejs_npm_global_unsafe_packages:      - name: nightmare        version: 2.10.0  roles:    - system.update    - system.sshd    - system.hostname    - system.timezone    - system.common    - system.packages    - system.rsync    - system.firewalld    - system.snmp    - system.rsyslog    - system.sysctl    - system.chrony    - zabbix-agent    - nodejs10    - node.daemon    - node.ncpay_rpm    - node.ncpay_grabber    - node.ncpay_transferin    - node.ncpay_transferout</code>=====执行playbook=====cd ansible-go/stagingansible-playbook -i inventory playbooks/nodejs_ncpay.yaml