• ansible组件 Ad-Hoc


    ad hoc ---临时的,在ansible里需要快速执行,并不用保存命令的执行方式

    简单命令

    playbook 复杂命令

     

     

    EXAMPLES:
    
    - name: install the latest version of Apache
      yum:
        name: httpd
        state: latest
    
    - name: ensure a list of packages installed
      yum:
        name: "{{ packages }}"
      vars:
        packages:
        - httpd
        - httpd-tools
    
    - name: remove the Apache package
      yum:
        name: httpd
        state: absent
    
    - name: install the latest version of Apache from the testing repo
      yum:
        name: httpd
        enablerepo: testing
        state: present
    
    - name: install one specific version of Apache
      yum:
        name: httpd-2.2.29-1.4.amzn1
        state: present
    
    - name: upgrade all packages
      yum:
        name: '*'
        state: latest
    
    - name: upgrade all packages, excluding kernel & foo related packages
      yum:
        name: '*'
        state: latest
        exclude: kernel*,foo*
    
    - name: install the nginx rpm from a remote repo
      yum:
        name: http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
        state: present
    
    - name: install nginx rpm from a local file
      yum:
        name: /usr/local/src/nginx-release-centos-6-0.el6.ngx.noarch.rpm
        state: present
    
    - name: install the 'Development tools' package group
      yum:
        name: "@Development tools"
        state: present
    
    - name: install the 'Gnome desktop' environment group
      yum:
        name: "@^gnome-desktop-environment"
        state: present
    
    - name: List ansible packages and register result to print with debug later.
      yum:
        list: ansible
      register: result
    
    - name: Install package with multiple repos enabled
      yum:
        name: sos
        enablerepo: "epel,ol7_latest"
    
    - name: Install package with multiple repos disabled
      yum:
        name: sos
        disablerepo: "epel,ol7_latest"
    
    - name: Install a list of packages
      yum:
        name:
          - nginx
          - postgresql
          - postgresql-server
        state: present
    
    - name: Download the nginx package but do not install it
      yum:
        name:
          - nginx
        state: latest
        download_only: true
      
    
     
    
    EXAMPLES:
    
    - name: example copying file with owner and permissions
      copy:
        src: /srv/myfiles/foo.conf
        dest: /etc/foo.conf
        owner: foo
        group: foo
        mode: 0644
    
    - name: The same example as above, but using a symbolic mode equivalent to 0644
      copy:
        src: /srv/myfiles/foo.conf
        dest: /etc/foo.conf
        owner: foo
        group: foo
        mode: u=rw,g=r,o=r
    
    - name: Another symbolic mode example, adding some permissions and removing others
      copy:
        src: /srv/myfiles/foo.conf
        dest: /etc/foo.conf
        owner: foo
        group: foo
        mode: u+rw,g-wx,o-rwx
    
    - name: Copy a new "ntp.conf file into place, backing up the original if it differs from the copied version
      copy:
        src: /mine/ntp.conf
        dest: /etc/ntp.conf
        owner: root
        group: root
        mode: 0644
        backup: yes
    
    - name: Copy a new "sudoers" file into place, after passing validation with visudo
      copy:
        src: /mine/sudoers
        dest: /etc/sudoers
        validate: /usr/sbin/visudo -cf %s
    
    - name: Copy a "sudoers" file on the remote machine for editing
      copy:
        src: /etc/sudoers
        dest: /etc/sudoers.edit
        remote_src: yes
        validate: /usr/sbin/visudo -cf %s
    
    - name: Copy using the 'content' for inline data
      copy:
        content: '# This file was moved to /etc/other.conf'
        dest: /etc/mine.conf'
    
    
    RETURN VALUES:
    
    dest:
        description: destination file/path
        returned: success
        type: string
        sample: /path/to/file.txt
    src:
        description: source file used for the copy on the target machine
        returned: changed
        type: string
        sample: /home/httpd/.ansible/tmp/ansible-tmp-1423796390.97-147729857856000/source
    md5sum:
        description: md5 checksum of the file after running copy
        returned: when supported
        type: string
        sample: 2a5aeecc61dc98c4d780b14b330e3282
    checksum:
        description: sha1 checksum of the file after running copy
        returned: success
        type: string
        sample: 6e642bb8dd5c2e027bf21dd923337cbb4214f827
    backup_file:
        description: name of backup file created
        returned: changed and if backup=yes
        type: string
        sample: /path/to/file.txt.2015-02-12@22:09~
    gid:
        description: group id of the file, after execution
        returned: success
        type: int
        sample: 100
    group:
        description: group of the file, after execution
        returned: success
        type: string
        sample: httpd
    owner:
        description: owner of the file, after execution
        returned: success
        type: string
        sample: httpd
    uid:
        description: owner id of the file, after execution
        returned: success
        type: int
        sample: 100
    mode:
        description: permissions of the target, after execution
        returned: success
        type: string
        sample: 0644
    size:
        description: size of the target, after execution
        returned: success
        type: int
        sample: 1220
    state:
        description: state of the target, after execution
        returned: success
        type: string
        sample: file

     

    EXAMPLES:
    
    - name: Add the user 'johnd' with a specific uid and a primary group of 'admin'
      user:
        name: johnd
        comment: John Doe
        uid: 1040
        group: admin
    
    - name: Add the user 'james' with a bash shell, appending the group 'admins' and 'developers' to the user's groups
      user:
        name: james
        shell: /bin/bash
        groups: admins,developers
        append: yes
    
    - name: Remove the user 'johnd'
      user:
        name: johnd
        state: absent
        remove: yes
    
    - name: Create a 2048-bit SSH key for user jsmith in ~jsmith/.ssh/id_rsa
      user:
        name: jsmith
        generate_ssh_key: yes
        ssh_key_bits: 2048
        ssh_key_file: .ssh/id_rsa
    
    - name: Added a consultant whose account you want to expire
      user:
        name: james18
        shell: /bin/zsh
        groups: developers
        expires: 1422403387
    
    - name: starting at version 2.6, modify user, remove expiry time
      user:
        name: james18
        expires: -1
    
    
    RETURN VALUES:
    
    append:
      description: Whether or not to append the user to groups
      returned: When state is 'present' and the user exists
      type: bool
      sample: True
    comment:
      description: Comment section from passwd file, usually the user name
      returned: When user exists
      type: string
      sample: Agent Smith
    create_home:
      description: Whether or not to create the home directory
      returned: When user does not exist and not check mode
      type: bool
      sample: True
    force:
      description: Whether or not a user account was forcibly deleted
      returned: When state is 'absent' and user exists
      type: bool
      sample: False
    group:
      description: Primary user group ID
      returned: When user exists
      type: int
      sample: 1001
    groups:
      description: List of groups of which the user is a member
      returned: When C(groups) is not empty and C(state) is 'present'
      type: string
      sample: 'chrony,apache'
    home:
      description: "Path to user's home directory"
      returned: When C(state) is 'present'
      type: string
      sample: '/home/asmith'
    move_home:
      description: Whether or not to move an existing home directory
      returned: When C(state) is 'present' and user exists
      type: bool
      sample: False
    name:
      description: User account name
      returned: always
      type: string
      sample: asmith
    password:
      description: Masked value of the password
      returned: When C(state) is 'present' and C(password) is not empty
      type: string
      sample: 'NOT_LOGGING_PASSWORD'
    remove:
      description: Whether or not to remove the user account
      returned: When C(state) is 'absent' and user exists
      type: bool
      sample: True
    shell:
      description: User login shell
      returned: When C(state) is 'present'
      type: string
      sample: '/bin/bash'
    ssh_fingerprint:
      description: Fingerprint of generated SSH key
      returned: When C(generate_ssh_key) is C(True)
      type: string
      sample: '2048 SHA256:aYNHYcyVm87Igh0IMEDMbvW0QDlRQfE0aJugp684ko8 ansible-generated on host (RSA)'
    ssh_key_file:
      description: Path to generated SSH public key file
      returned: When C(generate_ssh_key) is C(True)
      type: string
      sample: /home/asmith/.ssh/id_rsa
    ssh_public_key:
      description: Generated SSH public key file
      returned: When C(generate_ssh_key) is C(True)
      type: string
      sample: >
        'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC95opt4SPEC06tOYsJQJIuN23BbLMGmYo8ysVZQc4h2DZE9ugbjWWGS1/pweUGjVstgzMkBEeBCB
        618mUJBvdlEgea96QGjOwSB7/gmonduC7gsWDMNcOdSE3wJMTim4lddiBx4RgC9yXsJ6Tkz9BHD73MXPpT5ETnse+A3fw3IGVSjaueVnlUyUmOBf7fz
        d5u1u0e6Acju/8aZ/l17IDFiLke5IzlqIMRTEbDwLNeO84YQKWTm9fODHzhYe0yvxqLiK07 ansible-generated on host'
    stderr:
      description: Standard error from running commands
      returned: When stderr is returned by a command that is run
      type: string
      sample: Group wheels does not exist
    stdout:
      description: Standard output from running commands
      returned: When standard output is returned by the command that is run
      type: string
      sample:
    system:
      description: Whether or not the account is a system account
      returned: When C(system) is passed to the module and the account does not exist
      type: bool
      sample: True
    uid:
      description: User ID of the user account
      returned: When C(UID) is passed to the module
      type: int
      sample: 1044

     

    [root@ftp:/root]
    > ansible webservers -m shell -a 'uptime' -o 
    ansible03 | CHANGED | rc=0 | (stdout)  17:34:22 up  4:12,  2 users,  load average: 0.00, 0.01, 0.05
    ansible04 | CHANGED | rc=0 | (stdout)  17:34:22 up  3:45,  2 users,  load average: 0.16, 0.05, 0.05
    ansible02 | CHANGED | rc=0 | (stdout)  17:34:22 up  3:41,  1 user,  load average: 0.00, 0.01, 0.05
    ansible01 | CHANGED | rc=0 | (stdout)  17:34:22 up  4:11,  2 users,  load average: 0.00, 0.01, 0.05
    
    [root@ftp:/root]
    > ansible webservers -m shell -a 'uptime' -o -f 10
    ansible03 | CHANGED | rc=0 | (stdout)  17:34:56 up  4:12,  2 users,  load average: 0.00, 0.01, 0.05
    ansible01 | CHANGED | rc=0 | (stdout)  17:34:56 up  4:12,  2 users,  load average: 0.24, 0.06, 0.06
    ansible04 | CHANGED | rc=0 | (stdout)  17:34:56 up  3:45,  2 users,  load average: 0.10, 0.04, 0.05
    ansible02 | CHANGED | rc=0 | (stdout)  17:34:56 up  3:41,  1 user,  load average: 0.00, 0.01, 0.05
    
    [root@ftp:/root]
    >

     

    [root@ftp:/root]
    > ansible webservers -m copy -a 'src=/etc/hosts dest=/tmp/hosts owner=root group=root mode=777'
    ansible04 | CHANGED => {
        "changed": true, 
        "checksum": "19aad245261f1772bffdabf3a6f5347312b20b46", 
        "dest": "/tmp/hosts", 
        "gid": 0, 
        "group": "root", 
        "md5sum": "39c0b18a971b35e3888758a2494b6083", 
        "mode": "0777", 
        "owner": "root", 
        "size": 346, 
        "src": "/root/.ansible/tmp/ansible-tmp-1552815757.85-214840644098444/source", 
        "state": "file", 
        "uid": 0
    }
    ansible03 | CHANGED => {
        "changed": true, 
        "checksum": "19aad245261f1772bffdabf3a6f5347312b20b46", 
        "dest": "/tmp/hosts", 
        "gid": 0, 
        "group": "root", 
        "md5sum": "39c0b18a971b35e3888758a2494b6083", 
        "mode": "0777", 
        "owner": "root", 
        "size": 346, 
        "src": "/root/.ansible/tmp/ansible-tmp-1552815757.82-188384435660718/source", 
        "state": "file", 
        "uid": 0
    }
    ansible01 | CHANGED => {
        "changed": true, 
        "checksum": "19aad245261f1772bffdabf3a6f5347312b20b46", 
        "dest": "/tmp/hosts", 
        "gid": 0, 
        "group": "root", 
        "md5sum": "39c0b18a971b35e3888758a2494b6083", 
        "mode": "0777", 
        "owner": "root", 
        "size": 346, 
        "src": "/root/.ansible/tmp/ansible-tmp-1552815757.71-273021490189009/source", 
        "state": "file", 
        "uid": 0
    }
    ansible02 | CHANGED => {
        "changed": true, 
        "checksum": "19aad245261f1772bffdabf3a6f5347312b20b46", 
        "dest": "/tmp/hosts", 
        "gid": 0, 
        "group": "root", 
        "md5sum": "39c0b18a971b35e3888758a2494b6083", 
        "mode": "0777", 
        "owner": "root", 
        "size": 346, 
        "src": "/root/.ansible/tmp/ansible-tmp-1552815757.77-7921352044895/source", 
        "state": "file", 
        "uid": 0
    }
    
    [root@ftp:/root]
    > 

     

  • 相关阅读:
    audio元素
    获取页面中出现次数最多的三个标签以及出现次数
    vue ssr(server side rendering)
    python_2 python的编码声明
    python_1 python的编译过程
    bugs
    isPrototypeOf和 instanceof 的区别
    WebStorm 配置Git
    MongoDB 副本集搭建
    获取结算样式 getComputedStyle-currentStyle
  • 原文地址:https://www.cnblogs.com/liweiming/p/10547879.html
Copyright © 2020-2023  润新知