ansiable的简单总结

playbook  中文件架构:

files: 此角色中用到的所有文件均放置到此目录,一般放置固定的配置文件
templates:Jinja2模板文件存放位置 ,一般存放变量文件
tasks : 任务列表文件,可以有多个,但至少有一个main.yml
handlers: 处理器列表文件;可以有多个,但至少有一个叫做main.yml的文件
vars: 变量字典文件,可以有多个,但至少main.yml

代码复用:
1.vim /etc/ansible/hosts
[mini]
129.139.153.78:16283
155.139.190.94:12573
2.vim /etc/ansible/test.yml

 - hosts: mini
   roles:
   - test
   
3.mkdir /etc/ansible/roles/test/

4.cd /etc/ansible/roles/test/
ls
mkdir files  tasks   templates

执行剧本: 
ansible-playbook --syntax-check  /etc/ansible/ansible-play_book/test.yaml


ansible-playbook  -C /etc/ansible/ansible-play_book/test.yaml

ansible-playbook   /etc/ansible/ansible-play_book/test.yaml

 

单传的剧本执行,不需要配置复用:(不建议使用)

vim /root/test.yml

 - hosts: web1
   vars:
     http_port:80
     
   tasks:
   - name:install httpd php
     yum: name={{ item }} state=present
     with_items:
       - httpd
       - php
   - name: copy config file      
     template: src=/root/httpd.conf dest=/etc/httpd/conf/httpd.conf
     notify: restart httpd
   - name: start httpd
     service: name=httpd state=started enabled=true

   handlers:
   - name: restart httpd
     service: name=httpd state=restarted   
     
     
playbook中调用变量的方式为{{ variable }}
ansible_os_family 是facts中内置的属性信息 ansible_os_family的信息可以使用ansible all -m setup | grep ansible_os_family 查看
在task中调用内置的item变量;在某task后面使用with_items语句来定义元素列表。with_items的具体用法

- name: create service directory
  file: path=/data/{{ item }} state=directory mode=1777
  with_items:
    - service
    - var


上面的意思是copy中复制过去的文件跟远程主机上的文件不同,就通过notify调用handlers,即重启httpd服务。
templates:用于生成文本文件(配置文件),模板文件中可使用jinja2表达式,表达式要定义在{{ }},也可以简单地仅执行变量替换。

剧本复用的执行方式:

vim /root/web1.yml

- hosts: web1
  remote_user: root
  roles:
    - web1
    - { role:web2, http_port:8080 }
    
hosts:web1 指在/etc/ansible/hosts中定义的组,上面有定义
roles: web1 指的是当前目录下的web1目录,也可通过role传递变量, 也可调用多个role
这样只需更改hosts的主机就可以实现不同主机的代码重用了

ansible的高级用法(推荐使用)

1.ansible主配置文件中  

remote_port    = 29133   #指定ssh 服务器的端口
host_key_checking = False  #不进行key认证

2.

inventory 目录中存放主机列表

[tx]
192.168.18.5:29133
192.168.18.12:29133

bootstrap.yml 文件  内容

- hosts: "{{ target|default('bootstrap') }}"
  roles:
     - resolv
     - pkg
     - user
     - dir
     - supervisor
     - filebeat
     - conf

roles目录中存放各个角色内容

比如要执行某些角色的内容,可以执行:

ansible-playbook -i inventory/tmp bootstrap.yml -e target=tmp

这里就会执行bootstrap.yml文件中写定的角色内容

role.yml的文件内容:

- hosts: "{{ target }}"
  roles:
    - "{{ role }}"
  serial: "{{ serial|default('100%') }}"

要想执行某个角色的内容:

ansible-playbook -i inventory/tmp role.yml -e target=tmp -e role=node_export

这样就可以执行角色是node_export了

 

免密配置:

ansible -i inventory/tmp tmp -m script -a 'auth.sh' -k    (tmp为host列表)将认证公钥copy到目标机器


   ansiable的重要链接:https://juejin.im/post/5b3a074d51882548bc3aa35e#heading-27

https://getansible.com/advance/playbook/zhu_ji_de_xi_tong_bian_liang

https://www.cnblogs.com/bananaaa/p/8143345.html

https://juejin.im/post/5b3a074d51882548bc3aa35e#heading-28

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值