课时5 实现Ansible企业级用法playbook

ansible-galaxy 下载roles角色模板
课时5 实现Ansible企业级用法playbook_第1张图片
从https://galaxy.ansible.com下载roles的模板(EXPLORE)
确保服务器能与互联网通信,命令输入:ansible-galaxy install geerlingguy.nginx
该角色(geerlingguy.nginx)直接复制成另一个角色
删除角色:直接方法是删除目录;ansible-galaxy remove geerlingguy.nginx

······················································
ansible-pull 推送命令,用的不多
课时5 实现Ansible企业级用法playbook_第2张图片
pull推送数据 push拉数据
·····································
ansible-playbook(剧本)

ansible-playbook --help
playbook(剧本)以yml为后缀
用法:ansible-playbook 参数 1.yml 2.yml

yml文件案例:
vim hello.yml
格式:
···

  • hosts: websrvs
    remote_user: root(操控远程主机使用的用户)

    tasks:

    • name: hello
      commond: hostname

保存退出

执行:ansible-playbook hello.yml
·····························································
ansible-vault 加密

课时5 实现Ansible企业级用法playbook_第3张图片
加密后无法正常查看、执行
··············································
ansible-console 交互式工具
课时5 实现Ansible企业级用法playbook_第4张图片
输入ansible-console,则进入交互式命令模式

  1. root@all (2)[f:5]$ root是指远程主机使用的用户,all是指远程主机清单的所有,2指共主机数,5代表并发命令推送的主机数
  2. cd appsrvs 切换某个主机清单或者主机IP
  3. forks 10 修改为10个并发主机数
  4. command hostname 可以直接使用ansible命令
    用于临时测试等
    ···························································
    课时5 实现Ansible企业级用法playbook_第5张图片
    课时5 实现Ansible企业级用法playbook_第6张图片
    课时5 实现Ansible企业级用法playbook_第7张图片
    课时5 实现Ansible企业级用法playbook_第8张图片
    一般一个文件一个档案(···开头)
    缩进只能tab或者空格,只能二选一
    一个完整的yaml文件最少元素包括:name:task
    一个name只能一个task
    多个name多个task

···················································
课时5 实现Ansible企业级用法playbook_第9张图片
- 开头代表的是一个列表

课时5 实现Ansible企业级用法playbook_第10张图片
将多个键值对一行写成需要{},并有,隔开

课时5 实现Ansible企业级用法playbook_第11张图片
课时5 实现Ansible企业级用法playbook_第12张图片
可以到www.ansible.com.cn学习 中文版

课时5 实现Ansible企业级用法playbook_第13张图片
vim file.yml

  • hosts: websrvs
    remote_user: root

    tasks: tasks下的命令一般缩进两个空格,后面都要如此

    • name: create new file 命名
      file: name=/data/newfile state=touch 模块
    • name: create new user
      user: name=test2 system=yse home=/home/test2 shell=/sbin/nologin
    • name: install packages
      yum: name=httpd
    • name= copy html
      copy: src=/var/www/html dest=/var/www/html
    • name= service start
      service: name=httpd state=started enables=yes

保存退出

ansible-playbook -C file.yml 测试运行
查看账号是否存在 getent passwd test2
一个name中一个copy
····································································
课时5 实现Ansible企业级用法playbook_第14张图片
课时5 实现Ansible企业级用法playbook_第15张图片
课时5 实现Ansible企业级用法playbook_第16张图片
当task任务中一个出现错误,后面命令就不再执行,遇到这种时,希望忽略错误;
在命令中添加|| /bin/true
···················································
课时5 实现Ansible企业级用法playbook_第17张图片
ansible-playbook --list-hosts 列出运行任务的主机
–limit IP 只让这个IP执行命令
–list-tasks 查看任务列表
····································································
课时5 实现Ansible企业级用法playbook_第18张图片
在/root/ansible创建files目录,把文件都放到files下
src时就可以用相对路径:file/…html …sh

你可能感兴趣的:(课时5 实现Ansible企业级用法playbook)