Ansible playbook 自动化集群服务器管理示例说明和案例

2021-04-06 11:41:12 浏览数 (2)

代码语言:javascript复制
[root@c2020110343126 ~]# cat 1.txt 
 任务
# 案例
# cat a1.yml
---
- hosts: eisc                 # 代表eisc分组的主机被执行,all 是所有主机
  remote_user: root     #以root身份执行
  tasks:
    - name: 查看磁盘
      shell: df -h; echo " --------------------------------------------------------------"; free -m; echo "启动 ansible 写入文件" >> ansible.txt; date
      register: disk
                                    # 执行 shell 语句命令的开头不能为echo 语句,否则后面的语句直接打印出来不会被执行
    - name: 进程
      command: ps -u root
      register: ps
    - debug: msg="{{disk.stdout,ps.stdout}}"
                                    # 读取执行后的结果
    - local_action: copy content={{disk.stdout,ps.stdout}} dest=/root/aplaybook.txt
                                    # 将结果信息写入文件
# 说明
cat playbook.yml
---                                           #固定格式
- hosts: 192.168.1.31              #定义需要执行的主机或主机组
  remote_user: root                #远程用户
  vars:                                     #定义变量
    http_port: 8088                 #变量
  tasks:                                   #定义一个任务
    - name: create new file          #定义任务的名称
      file: name=/tmp/playtest.txt state=touch   #调用模块,具体要做的事情
    - name: install package
      yum: name=httpd
    - name: config httpd
      template: src=./httpd.conf dest=/etc/httpd/conf/httpd.conf
      notify:                              #触发器,当条件触发后需要做的操作,配合handlers使用
        - restart apache            #需要引用的handlers的名字
    - name: copy index.html
      copy: src=/var/www/html/index.html dest=/var/www/html/index.html
    - name: start httpd
      service: name=httpd state=started
  handlers:                            #notify定义的触发执行相应的处理动作
    - name: restart apache                     
                                             #要与notify定义的内容相同
      service: name=httpd state=restarted      
                                            #触发要执行的动作
# 相关链接
centos 安装 ansible 集群管理运用:https://www.eisc.cn/index.php?c=read&id=484&page=1

0 人点赞