美文网首页
ansible运维

ansible运维

作者: cnzhanhao | 来源:发表于2019-04-28 23:52 被阅读0次
    image.png

    在之前的文章中谈到了自动构建、代码质量、安全审计、监控,今天来写一些运维方面的知识。

    ansible在这里就能起到一个很好的作用,我们在实际环境中,无论是审计、监控等等总是能发现一些问题需要去解决。这个时候我们就可以用ansible统一的去处理一些知识库中有的问题。

    Ansible提供两种方式去完成任务,一是 ad-hoc 命令,一是写 Ansible playbook.前者可以解决一些简单的任务, 后者解决较复杂的任务.(ad-hoc 命令和 ansible playbook 的关系类似于在命令行敲入shell命令和 写shell scripts两者之间的关系)

    ad-hoc

    • 免密

    ansible all -m authorized_key -a "user=root state=present key=\"{{ lookup('file', '/root/.ssh/id_rsa.pub') }} \"" -k

    • ping模块

    ansible all -m ping

    • service 模块

    ansible webservs -m service -a 'enabled=true name=httpd state=started'

    • command: 命令模块

    ansible 192.168.1.101 -m command -a 'date'

    • shell:用到管道复杂命令功能时建议用shell

    ansible all -m shell -a 'echo 123..com | passwd --stdin user1'

    • script:在远程主机执行脚本

    ansible all -m script -a "/tmp/a.sh"

    • yum:安装程序包 卸载的话 state=absent

    ansible all -m yum -a "name=zsh"

    • file: 更改文件的属主、group

    ansible all -m file -a 'owner=mysql group=mysql mode=644 path=/tmp/fstab.ansible'

    • copy:

      src=: 定义本地源文件路径

      dest=: 定义远程目标文件路径

      content=: 取代src=,表示直接用此处指定的信息生成为目标文件

    ansible all -m copy -a 'src=/etc/fstab dest=/tmp/fstab.ansible owner=root mode=640'

    • user: 创建用户, 删除用户后面跟上 state=absent

    ansible all -m user -a 'name="user1"'

    • cron模块: 让被管理节点生成定期自动运维计划

    让2台主机每10分钟运行一次echo hell

    ansible webservs -m cron -a 'minute="*/10" job="/bin/echo hell" name="test cron job"'

    • git 模块: 使用 git 部署 webapp

    ansible webservers -m git -a "repo=[git://foo.example.org/repo.git](git://foo.example.org/repo.git) dest=/srv/myapp versio

    playbook

    这块我还没有使用过,等我改天试用一下再来补上

    • tasks:任务
    • variables:变量
    • templates:模板
    • handlers:处理器
    • roles:角色

    以上一些后面再更新

    • 示例
    - hosts: all
      remote_user: root
    
      tasks:
        - name: pwd
          shell: "pwd"
        - name: install nginx
          yum: name=nginx state=present
        - name: start nginx
          service: name=nginx state=started enabled=true
    
    • 执行

    检查语法
    ansible-playbook --syntax xxx.yml
    模拟执行
    ansible-playbook -C xxx.yml
    执行
    ansible-playbook xxx.yml

    相关文章

      网友评论

          本文标题:ansible运维

          本文链接:https://www.haomeiwen.com/subject/kpnsnqtx.html