4,ansible4

ansible命令行工具常用选项

选项:
-a MODULE_ARGS,		--args=MODULE_ARGS 模块参数
-C, 				--check 运行检查,不执行任何操作
-e EXTRA_VARS,		--extra-vars=EXTRA_VARS 设置附加变量 key=value
-f FORKS,			--forks=FORKS 指定并行进程数量,默认5
-i INVENTORY,		--inventory=INVENTORY 指定主机清单文件路径
					--list-hosts 输出匹配的主机列表,不执行任何操作
-m MODULE_NAME,		--module-name=MODULE_NAME 执行的模块名,默认command
					--syntax-check 语法检查playbook文件,不执行任何操作
-t TREE,			--tree=TREE 将日志输出到此目录
-v,					--verbose 详细信息,-vvv更多, -vvvv debug
					--version 查看程序版本

连接选项:控制谁连接主机和如何连接
-k, 				--ask-pass 请求连接密码
					--private-key=PRIVATE_KEY_FILE, --key-file=PRIVATE_KEY_FILE 私钥文件
-u REMOTE_USER,		--user=REMOTE_USER 连接用户,默认None
-T TIMEOUT,			--timeout=TIMEOUT 覆盖连接超时时间,默认10秒

提权选项:控制在目标主机以什么用户身份运行
-b,					--become 以另一个用户身份操作
					--become-method=BECOME_METHOD 提权方法,默认sudo
					--become-user=BECOME_USER 提权后的用户身份,默认root
-K,					--ask-become-pass 提权密码





[root@es1 playbook-demo]# cat nginx.yml 
---
- hosts: webservers
  vars:
    hello: Ansible

  tasks:
  - name: Add repo
    yum_repository:
      name: nginx
      description: nginx repo
      baseurl: http://nginx.org/packages/centos/7/$basearch/
      gpgcheck: no
      enabled: 1

  - name: Install nginx
    yum:
      name: nginx
      state: latest

  - name: Copy nginx configuration file
    copy:
      src: ./site.conf
      dest: /etc/nginx/conf.d/site.conf

  - name: Start nginx
    service:
      name: nginx
      state: started

  - name: Create wwwroot directory
    file:
      dest: /var/www/html
      state: directory

  - name: Create test page index.html
    shell: echo "hello {{hello}}" > /var/www/html/index.html
[root@es1 playbook-demo]# 
[root@es1 playbook-demo]# 
[root@es1 playbook-demo]# 
[root@es1 playbook-demo]# 
[root@es1 playbook-demo]# cat site.conf 
server {
	listen 80;
	server_name www.ctnrs.com;
	
	location / {
			root /var/www/html;
			index index.html;
	}
}
[root@es1 playbook-demo]# 


[root@es1 playbook-demo]# ansible-playbook nginx.yml

PLAY [webservers] ********************************************************************************************************************************************************************************

TASK [Gathering Facts] ***************************************************************************************************************************************************************************
ok: [192.168.0.12]
ok: [192.168.0.13]

TASK [Add repo] **********************************************************************************************************************************************************************************
changed: [192.168.0.12]
changed: [192.168.0.13]

TASK [Install nginx] *****************************************************************************************************************************************************************************
changed: [192.168.0.13]
changed: [192.168.0.12]

TASK [Copy nginx configuration file] *************************************************************************************************************************************************************
changed: [192.168.0.12]
changed: [192.168.0.13]

TASK [Start nginx] *******************************************************************************************************************************************************************************
changed: [192.168.0.13]
changed: [192.168.0.12]

TASK [Create wwwroot directory] ******************************************************************************************************************************************************************
changed: [192.168.0.12]
changed: [192.168.0.13]

TASK [Create test page index.html] ***************************************************************************************************************************************************************
changed: [192.168.0.13]
changed: [192.168.0.12]

PLAY RECAP ***************************************************************************************************************************************************************************************
192.168.0.12               : ok=7    changed=6    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.0.13               : ok=7    changed=6    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

[root@es1 playbook-demo]#

[root@es2 ~]# curl 192.168.0.12 -H "Host:www.ctnrs.com"






[root@es1 playbook-demo]# cat demo.yml 
---
- name: play1
  hosts: webservers
  remote_user: root
  vars:
    var_name: value
  tasks:
    - name: echo
      shell: "echo {{var_name}}"

- name: play2
  hosts: webservers
  remote_user: root
  vars:
    var_name: value
  tasks:
    - name: echo
      shell: "echo {{var_name}}"
[root@es1 playbook-demo]# 
[root@es1 playbook-demo]# ansible-playbook demo.yml

PLAY [play1] *************************************************************************************************************************************************************************************

TASK [Gathering Facts] ***************************************************************************************************************************************************************************
ok: [192.168.0.12]
ok: [192.168.0.13]

TASK [echo] **************************************************************************************************************************************************************************************
changed: [192.168.0.12]
changed: [192.168.0.13]

PLAY [play2] *************************************************************************************************************************************************************************************

TASK [Gathering Facts] ***************************************************************************************************************************************************************************
ok: [192.168.0.12]
ok: [192.168.0.13]

TASK [echo] **************************************************************************************************************************************************************************************
changed: [192.168.0.13]
changed: [192.168.0.12]

PLAY RECAP ***************************************************************************************************************************************************************************************
192.168.0.12               : ok=4    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.0.13               : ok=4    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

[root@es1 playbook-demo]#





notify:在任务结束时触发
handlers:由特定条件触发Tasks

[root@es1 playbook-demo]# cat demo3.yml 
---
- hosts: webservers
  gather_facts: no

  tasks:
  - name: Copy nginx configuration file
    copy:
      src: ./site.conf
      dest: /etc/nginx/conf.d/site.conf
      notify:
        - restart nginx
  
  handlers:
    - name: restart nginx
      service: name=nginx state=reloaded

[root@es1 playbook-demo]# 
[root@es1 playbook-demo]# 
[root@es1 playbook-demo]# ansible-playbook demo3.yml  --syntax-check

playbook: demo3.yml
[root@es1 playbook-demo]# ansible-playbook demo3.yml

PLAY [webservers] ********************************************************************************************************************************************************************************

TASK [Copy nginx configuration file] *************************************************************************************************************************************************************
ok: [192.168.0.12]
ok: [192.168.0.13]

PLAY RECAP ***************************************************************************************************************************************************************************************
192.168.0.12               : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.0.13               : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

[root@es1 playbook-demo]# 
[root@es1 playbook-demo]# 




任务控制(tags)与Playbook调试
[root@es1 playbook-demo]# cat demo4.yml 
---
- hosts: webservers
  gather_facts: no

  tasks:
    - name: Install redis
      yum: name=redis state=present
      tags: install

    - name: Copy redis configuration file
      copy: src=redis.conf dest=/etc/redis/redis.conf
      tags: configuration

    - name: Restart redis
      service: name=redis state=restarted
      tags: restart

[root@es1 playbook-demo]# ansible-playbook demo4.yml  --syntax-check

playbook: demo4.yml
[root@es1 playbook-demo]# 

指定:ansible-playbook example.yml --tags "configuration,install"
跳过:ansible-playbook example.yml --skip-tags "install"



Playbook文件调试(debug)
[root@es1 playbook-demo]# cat demo5.yml 
---
- name: play1
  hosts: webservers
  gather_facts: no
  remote_user: root
  vars:
    var_name: value
    appuser: usa
  tasks:
    - name: echo1
      #shell: "echo {{var_name}}"
      debug: msg="{{var_name}}"
      tags: test1

    - name: echo2
      shell: "echo {{appuser}}"
      tags: test2
[root@es1 playbook-demo]# 
[root@es1 playbook-demo]# ansible-playbook demo5.yml  --tags "test1"

PLAY [play1] *************************************************************************************************************************************************************************************

TASK [echo1] *************************************************************************************************************************************************************************************
ok: [192.168.0.12] => {
    "msg": "value"
}
ok: [192.168.0.13] => {
    "msg": "value"
}

PLAY RECAP ***************************************************************************************************************************************************************************************
192.168.0.12               : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.0.13               : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

[root@es1 playbook-demo]# 
[root@es1 playbook-demo]# ansible-playbook demo5.yml  --tags "test2"

PLAY [play1] *************************************************************************************************************************************************************************************

TASK [echo2] *************************************************************************************************************************************************************************************
changed: [192.168.0.12]
changed: [192.168.0.13]

PLAY RECAP ***************************************************************************************************************************************************************************************
192.168.0.12               : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.0.13               : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

[root@es1 playbook-demo]# 
[root@es1 playbook-demo]# 

  

posted @ 2020-11-16 22:14  pwcc  阅读(157)  评论(0)    收藏  举报