Ansible变量定义和使用

news2024/9/27 12:11:54

剧本中使用变量

在playbook中,可以直接定义变量,如下所示:
vars:变量名=变量值,也可以写在下一级将=改成冒号+空格+值的形式
debug:debug模块,msg消息
引用变量:使用两对{{ }}

vim juben.yml 
- hosts: all
  vars:
    bianliang: monster是真滴帅!!!
  tasks:
    - name: 输出变量bianliang的值
      debug: msg=变量的值是{{ bianliang }}

执行剧本

[root@monster1 ~]# ansible-playbook juben.yml 

在这里插入图片描述
注意:变量在开头的时候需要加双引号或单引号,如下格式

- hosts: all
  vars:
    bianliang: monster是真滴帅!!!
  tasks:
    - name: 输出变量bianliang的值
      debug:
        msg: "{{bianliang}}是变量的值"

通过变量文件使用变量

变量也可以通过文件包含在playbook中,该变量可以作为或者不作为“Ansible Role”的一部分.使用role是首选,因为它提供了一个很好的组织体系。
编写变量文件,例如bl_file.yml

vim bl_file.yml

里面存放了bl01、bl02两个变量

bl01: monster是真滴帅!
bl02: 你也不赖!!!

编写剧本

vim juben.yml 

vars_files: 变量文件路径
这种方式,相比在剧本里面写变量,可以在多个剧本中使用,而剧本内写变量只能在当前剧本中使用

- hosts: all
  vars_files: /root/bl_file.yml
  tasks:
    - name: 输出变量bl_file文件里面的两个变量值
      debug:
        msg: bl01的值是:{{bl01}},bl02的值是:{{bl02}}

执行剧本

[root@monster1 ~]# ansible-playbook juben.yml 

在这里插入图片描述

根据主机清单分组自动识别使用变量

创建group_vars目录

mkdir -p group_vars

再给每个组建立一个目录

mkdir {all,cctv,dba,server2,web}

给每个组文件夹里建个vars.yml变量文件,并设置变量和值,例如所有变量文件都有一个port变量,但每个的值不一样

[root@monster1 server2]# cat vars.yml 
port: 1111

[root@monster1 web]# cat vars.yml 
port: 2222

此时目录结构如下

[root@monster1 group_vars]# tree
.
├── all
│   └── vars.yml
├── cctv
│   └── vars.yml
├── dba
│   └── vars.yml
├── server2
│   └── vars.yml
└── web
    └── vars.yml

5 directories, 5 files

变量文件都建好了,编写剧本
现在是实现自动识别使用变量,剧本里面不用编写指定变量文件,没有vars和vars_files
对应的hosts组会去自动去对应的变量文件里面去读取,如果指定的组没有变量文件会默认去读取all的变量文件。

vim juben.yml 
- hosts: server2
  tasks:
    - name: server2组的变量
      debug:
        msg: server2组变量port的值是:{{port}}
- hosts: web
  tasks:
    - name: web组的变量
      debug:
        msg: web组变量port的值是:{{port}}

执行剧本ansible-playbook juben.yml ,可以看见server2 是1111,web是2222

在这里插入图片描述
在这里插入图片描述

内置变量Facts

会发现每次执行剧本到下面提示这一步会卡很久,这个变量会搜集分发主机的各种信息不管有用没用导致等待时间过久。

 ________________________
< TASK [Gathering Facts] >
 ------------------------

看一下下面facts内置变量都有哪些,粉红色/紫色的就是内置变量,嵌套的就用点读取下一层例如{{ansible_apparmor.status}}

[root@monster1 ~]# ansible server2 -m setup
192.168.71.138 | SUCCESS => {
    "ansible_facts": {
        "ansible_all_ipv4_addresses": [
            "192.168.71.138", 
            "172.17.0.1"
        ], 
        "ansible_all_ipv6_addresses": [
            "fe80::e4cd:49ff:fe63:b1bf", 
            "fe80::20c:29ff:febd:3a3e", 
            "fe80::42:eff:fee5:4d"
        ], 
        "ansible_apparmor": {
            "status": "disabled"
        }, 
        "ansible_architecture": "aarch64", 
        "ansible_bios_date": "10/18/2022", 
        "ansible_bios_version": "VMW201.00V.20648489.BA64.2210180829", 
        "ansible_cmdline": {
            "BOOT_IMAGE": "/vmlinuz-5.11.12-300.el7.aarch64", 
            "LANG": "en_US.UTF-8", 
            "crashkernel": "auto", 
            "quiet": true, 
            "rd.lvm.lv": "cl_fedora/swap", 
            "rhgb": true, 
            "ro": true, 
            "root": "/dev/mapper/cl_fedora-root"
        }, 
        "ansible_date_time": {
            "date": "2022-12-28", 
            "day": "28", 
            "epoch": "1672216358", 
            "hour": "03", 
            "iso8601": "2022-12-28T08:32:38Z", 
            "iso8601_basic": "20221228T033238632874", 
            "iso8601_basic_short": "20221228T033238", 
            "iso8601_micro": "2022-12-28T08:32:38.632939Z", 
            "minute": "32", 
            "month": "12", 
            "second": "38", 
            "time": "03:32:38", 
            "tz": "EST", 
            "tz_offset": "-0500", 
            "weekday": "Wednesday", 
            "weekday_number": "3", 
            "weeknumber": "52", 
            "year": "2022"
        }, 
        "ansible_default_ipv4": {
            "address": "192.168.71.138", 
            "alias": "ens160", 
            "broadcast": "192.168.71.255", 
            "gateway": "192.168.71.2", 
            "interface": "ens160", 
            "macaddress": "00:0c:29:bd:3a:3e", 
            "mtu": 1500, 
            "netmask": "255.255.255.0", 
            "network": "192.168.71.0", 
            "type": "ether"
        }, 
        "ansible_default_ipv6": {}, 
        "ansible_device_links": {
            "ids": {
                "dm-0": [
                    "dm-name-cl_fedora-root", 
                    "dm-uuid-LVM-bY743yaBQhxBwVRHK131KJePzQnYRzJ6XttG92aiQKf9vxsFaPJ3dy5jnwv1b6qD"
                ], 
                "dm-1": [
                    "dm-name-cl_fedora-swap", 
                    "dm-uuid-LVM-bY743yaBQhxBwVRHK131KJePzQnYRzJ6CraGxxYk4OFdU6A1TOctzoMSS7i1AnHa"
                ], 
                "nvme0n1": [
                    "nvme-VMware_Virtual_NVMe_Disk_VMware_NVME_0000", 
                    "nvme-eui.de9f68f1c7bb5fb0000c296b57eb1060"
                ], 
                "nvme0n1p1": [
                    "nvme-VMware_Virtual_NVMe_Disk_VMware_NVME_0000-part1", 
                    "nvme-eui.de9f68f1c7bb5fb0000c296b57eb1060-part1"
                ], 
                "nvme0n1p2": [
                    "nvme-VMware_Virtual_NVMe_Disk_VMware_NVME_0000-part2", 
                    "nvme-eui.de9f68f1c7bb5fb0000c296b57eb1060-part2"
                ], 
                "nvme0n1p3": [
                    "lvm-pv-uuid-uQ1Iws-fUTS-qdu8-jQ2t-FKb1-RnsD-fCQSnH", 
                    "nvme-VMware_Virtual_NVMe_Disk_VMware_NVME_0000-part3", 
                    "nvme-eui.de9f68f1c7bb5fb0000c296b57eb1060-part3"
                ], 
                "sr0": [
                    "ata-VMware_Virtual_SATA_CDRW_Drive_01000000000000000001"
                ]
            }, 
            "labels": {}, 
            "masters": {
                "nvme0n1p3": [
                    "dm-0", 
                    "dm-1"
                ]
            }, 
            "uuids": {
                "dm-0": [
                    "204de140-41d9-4444-b69d-50b31551d720"
                ], 
                "dm-1": [
                    "7ce6fa70-a2ab-4b58-a9df-ab76506bdb1f"
                ], 
                "nvme0n1p1": [
                    "5402-1064"
                ], 
                "nvme0n1p2": [
                    "ddcaab60-eab6-479a-91c9-63ca127c3594"
                ]
            }
        }, 
        "ansible_devices": {
            "dm-0": {
                "holders": [], 
                "host": "", 
                "links": {
                    "ids": [
                        "dm-name-cl_fedora-root", 
                        "dm-uuid-LVM-bY743yaBQhxBwVRHK131KJePzQnYRzJ6XttG92aiQKf9vxsFaPJ3dy5jnwv1b6qD"
                    ], 
                    "labels": [], 
                    "masters": [], 
                    "uuids": [
                        "204de140-41d9-4444-b69d-50b31551d720"
                    ]
                }, 
                "model": null, 
                "partitions": {}, 
                "removable": "0", 
                "rotational": "0", 
                "sas_address": null, 
                "sas_device_handle": null, 
                "scheduler_mode": "", 
                "sectors": "34414592", 
                "sectorsize": "512", 
                "size": "16.41 GB", 
                "support_discard": "0", 
                "vendor": null, 
                "virtual": 1
            }, 
            "dm-1": {
                "holders": [], 
                "host": "", 
                "links": {
                    "ids": [
                        "dm-name-cl_fedora-swap", 
                        "dm-uuid-LVM-bY743yaBQhxBwVRHK131KJePzQnYRzJ6CraGxxYk4OFdU6A1TOctzoMSS7i1AnHa"
                    ], 
                    "labels": [], 
                    "masters": [], 
                    "uuids": [
                        "7ce6fa70-a2ab-4b58-a9df-ab76506bdb1f"
                    ]
                }, 
                "model": null, 
                "partitions": {}, 
                "removable": "0", 
                "rotational": "0", 
                "sas_address": null, 
                "sas_device_handle": null, 
                "scheduler_mode": "", 
                "sectors": "4194304", 
                "sectorsize": "512", 
                "size": "2.00 GB", 
                "support_discard": "0", 
                "vendor": null, 
                "virtual": 1
            }, 
            "nvme0n1": {
                "holders": [], 
                "host": "", 
                "links": {
                    "ids": [
                        "nvme-VMware_Virtual_NVMe_Disk_VMware_NVME_0000", 
                        "nvme-eui.de9f68f1c7bb5fb0000c296b57eb1060"
                    ], 
                    "labels": [], 
                    "masters": [], 
                    "uuids": []
                }, 
                "model": "VMware Virtual NVMe Disk", 
                "partitions": {
                    "nvme0n1p1": {
                        "holders": [], 
                        "links": {
                            "ids": [
                                "nvme-VMware_Virtual_NVMe_Disk_VMware_NVME_0000-part1", 
                                "nvme-eui.de9f68f1c7bb5fb0000c296b57eb1060-part1"
                            ], 
                            "labels": [], 
                            "masters": [], 
                            "uuids": [
                                "5402-1064"
                            ]
                        }, 
                        "sectors": "1228800", 
                        "sectorsize": 512, 
                        "size": "600.00 MB", 
                        "start": "2048", 
                        "uuid": "5402-1064"
                    }, 
                    "nvme0n1p2": {
                        "holders": [], 
                        "links": {
                            "ids": [
                                "nvme-VMware_Virtual_NVMe_Disk_VMware_NVME_0000-part2", 
                                "nvme-eui.de9f68f1c7bb5fb0000c296b57eb1060-part2"
                            ], 
                            "labels": [], 
                            "masters": [], 
                            "uuids": [
                                "ddcaab60-eab6-479a-91c9-63ca127c3594"
                            ]
                        }, 
                        "sectors": "2097152", 
                        "sectorsize": 512, 
                        "size": "1.00 GB", 
                        "start": "1230848", 
                        "uuid": "ddcaab60-eab6-479a-91c9-63ca127c3594"
                    }, 
                    "nvme0n1p3": {
                        "holders": [
                            "cl_fedora-swap", 
                            "cl_fedora-root"
                        ], 
                        "links": {
                            "ids": [
                                "lvm-pv-uuid-uQ1Iws-fUTS-qdu8-jQ2t-FKb1-RnsD-fCQSnH", 
                                "nvme-VMware_Virtual_NVMe_Disk_VMware_NVME_0000-part3", 
                                "nvme-eui.de9f68f1c7bb5fb0000c296b57eb1060-part3"
                            ], 
                            "labels": [], 
                            "masters": [
                                "dm-0", 
                                "dm-1"
                            ], 
                            "uuids": []
                        }, 
                        "sectors": "38612992", 
                        "sectorsize": 512, 
                        "size": "18.41 GB", 
                        "start": "3328000", 
                        "uuid": null
                    }
                }, 
                "removable": "0", 
                "rotational": "0", 
                "sas_address": null, 
                "sas_device_handle": null, 
                "scheduler_mode": "none", 
                "sectors": "41943040", 
                "sectorsize": "512", 
                "size": "20.00 GB", 
                "support_discard": "0", 
                "vendor": null, 
                "virtual": 1
            }, 
            "sr0": {
                "holders": [], 
                "host": "", 
                "links": {
                    "ids": [
                        "ata-VMware_Virtual_SATA_CDRW_Drive_01000000000000000001"
                    ], 
                    "labels": [], 
                    "masters": [], 
                    "uuids": []
                }, 
                "model": "VMware SATA CD01", 
                "partitions": {}, 
                "removable": "1", 
                "rotational": "1", 
                "sas_address": null, 
                "sas_device_handle": null, 
                "scheduler_mode": "mq-deadline", 
                "sectors": "2097151", 
                "sectorsize": "512", 
                "size": "1024.00 MB", 
                "support_discard": "0", 
                "vendor": "NECVMWar", 
                "virtual": 1
            }
        }, 
        "ansible_distribution": "CentOS", 
        "ansible_distribution_file_parsed": true, 
        "ansible_distribution_file_path": "/etc/redhat-release", 
        "ansible_distribution_file_variety": "RedHat", 
        "ansible_distribution_major_version": "7", 
        "ansible_distribution_release": "AltArch", 
        "ansible_distribution_version": "7.9", 
        "ansible_dns": {
            "nameservers": [
                "192.168.71.2"
            ], 
            "search": [
                "localdomain"
            ]
        }, 
        "ansible_docker0": {
            "active": true, 
            "device": "docker0", 
            "features": {
                "esp_hw_offload": "off [fixed]", 
                "esp_tx_csum_hw_offload": "off [fixed]", 
                "fcoe_mtu": "off [fixed]", 
                "generic_receive_offload": "on", 
                "generic_segmentation_offload": "on", 
                "highdma": "on", 
                "hw_tc_offload": "off [fixed]", 
                "l2_fwd_offload": "off [fixed]", 
                "large_receive_offload": "off [fixed]", 
                "loopback": "off [fixed]", 
                "macsec_hw_offload": "off [fixed]", 
                "netns_local": "on [fixed]", 
                "ntuple_filters": "off [fixed]", 
                "receive_hashing": "off [fixed]", 
                "rx_all": "off [fixed]", 
                "rx_checksumming": "off [fixed]", 
                "rx_fcs": "off [fixed]", 
                "rx_gro_hw": "off [fixed]", 
                "rx_gro_list": "off", 
                "rx_udp_tunnel_port_offload": "off [fixed]", 
                "rx_vlan_filter": "off [fixed]", 
                "rx_vlan_offload": "off [fixed]", 
                "rx_vlan_stag_filter": "off [fixed]", 
                "rx_vlan_stag_hw_parse": "off [fixed]", 
                "scatter_gather": "on", 
                "tcp_segmentation_offload": "on", 
                "tls_hw_record": "off [fixed]", 
                "tls_hw_rx_offload": "off [fixed]", 
                "tls_hw_tx_offload": "off [fixed]", 
                "tx_checksum_fcoe_crc": "off [fixed]", 
                "tx_checksum_ip_generic": "on", 
                "tx_checksum_ipv4": "off [fixed]", 
                "tx_checksum_ipv6": "off [fixed]", 
                "tx_checksum_sctp": "off [fixed]", 
                "tx_checksumming": "on", 
                "tx_esp_segmentation": "on", 
                "tx_fcoe_segmentation": "off [requested on]", 
                "tx_gre_csum_segmentation": "on", 
                "tx_gre_segmentation": "on", 
                "tx_gso_list": "on", 
                "tx_gso_partial": "on", 
                "tx_gso_robust": "off [requested on]", 
                "tx_ipxip4_segmentation": "on", 
                "tx_ipxip6_segmentation": "on", 
                "tx_lockless": "on [fixed]", 
                "tx_nocache_copy": "off", 
                "tx_scatter_gather": "on", 
                "tx_scatter_gather_fraglist": "on", 
                "tx_sctp_segmentation": "on", 
                "tx_tcp6_segmentation": "on", 
                "tx_tcp_ecn_segmentation": "on", 
                "tx_tcp_mangleid_segmentation": "on", 
                "tx_tcp_segmentation": "on", 
                "tx_tunnel_remcsum_segmentation": "on", 
                "tx_udp_segmentation": "on", 
                "tx_udp_tnl_csum_segmentation": "on", 
                "tx_udp_tnl_segmentation": "on", 
                "tx_vlan_offload": "on", 
                "tx_vlan_stag_hw_insert": "on", 
                "udp_fragmentation_offload": "off", 
                "vlan_challenged": "off [fixed]"
            }, 
            "hw_timestamp_filters": [], 
            "id": "8000.02420ee5004d", 
            "interfaces": [
                "vethee820f4"
            ], 
            "ipv4": {
                "address": "172.17.0.1", 
                "broadcast": "172.17.255.255", 
                "netmask": "255.255.0.0", 
                "network": "172.17.0.0"
            }, 
            "ipv6": [
                {
                    "address": "fe80::42:eff:fee5:4d", 
                    "prefix": "64", 
                    "scope": "link"
                }
            ], 
            "macaddress": "02:42:0e:e5:00:4d", 
            "mtu": 1500, 
            "promisc": false, 
            "speed": 10000, 
            "stp": false, 
            "timestamping": [
                "rx_software", 
                "software"
            ], 
            "type": "bridge"
        }, 
        "ansible_domain": "", 
        "ansible_effective_group_id": 0, 
        "ansible_effective_user_id": 0, 
        "ansible_ens160": {
            "active": true, 
            "device": "ens160", 
            "features": {
                "esp_hw_offload": "off [fixed]", 
                "esp_tx_csum_hw_offload": "off [fixed]", 
                "fcoe_mtu": "off [fixed]", 
                "generic_receive_offload": "on", 
                "generic_segmentation_offload": "on", 
                "highdma": "on [fixed]", 
                "hw_tc_offload": "off [fixed]", 
                "l2_fwd_offload": "off [fixed]", 
                "large_receive_offload": "off [fixed]", 
                "loopback": "off [fixed]", 
                "macsec_hw_offload": "off [fixed]", 
                "netns_local": "off [fixed]", 
                "ntuple_filters": "off [fixed]", 
                "receive_hashing": "on", 
                "rx_all": "off", 
                "rx_checksumming": "on", 
                "rx_fcs": "off", 
                "rx_gro_hw": "off [fixed]", 
                "rx_gro_list": "off", 
                "rx_udp_tunnel_port_offload": "off [fixed]", 
                "rx_vlan_filter": "on [fixed]", 
                "rx_vlan_offload": "on", 
                "rx_vlan_stag_filter": "off [fixed]", 
                "rx_vlan_stag_hw_parse": "off [fixed]", 
                "scatter_gather": "on", 
                "tcp_segmentation_offload": "on", 
                "tls_hw_record": "off [fixed]", 
                "tls_hw_rx_offload": "off [fixed]", 
                "tls_hw_tx_offload": "off [fixed]", 
                "tx_checksum_fcoe_crc": "off [fixed]", 
                "tx_checksum_ip_generic": "on", 
                "tx_checksum_ipv4": "off [fixed]", 
                "tx_checksum_ipv6": "off [fixed]", 
                "tx_checksum_sctp": "off [fixed]", 
                "tx_checksumming": "on", 
                "tx_esp_segmentation": "off [fixed]", 
                "tx_fcoe_segmentation": "off [fixed]", 
                "tx_gre_csum_segmentation": "off [fixed]", 
                "tx_gre_segmentation": "off [fixed]", 
                "tx_gso_list": "off [fixed]", 
                "tx_gso_partial": "off [fixed]", 
                "tx_gso_robust": "off [fixed]", 
                "tx_ipxip4_segmentation": "off [fixed]", 
                "tx_ipxip6_segmentation": "off [fixed]", 
                "tx_lockless": "off [fixed]", 
                "tx_nocache_copy": "off", 
                "tx_scatter_gather": "on", 
                "tx_scatter_gather_fraglist": "off [fixed]", 
                "tx_sctp_segmentation": "off [fixed]", 
                "tx_tcp6_segmentation": "on", 
                "tx_tcp_ecn_segmentation": "off [fixed]", 
                "tx_tcp_mangleid_segmentation": "off", 
                "tx_tcp_segmentation": "on", 
                "tx_tunnel_remcsum_segmentation": "off [fixed]", 
                "tx_udp_segmentation": "off [fixed]", 
                "tx_udp_tnl_csum_segmentation": "off [fixed]", 
                "tx_udp_tnl_segmentation": "off [fixed]", 
                "tx_vlan_offload": "on", 
                "tx_vlan_stag_hw_insert": "off [fixed]", 
                "udp_fragmentation_offload": "off", 
                "vlan_challenged": "off [fixed]"
            }, 
            "hw_timestamp_filters": [
                "none", 
                "all", 
                "ptp_v1_l4_sync", 
                "ptp_v1_l4_delay_req", 
                "ptp_v2_l4_sync", 
                "ptp_v2_l4_delay_req", 
                "ptp_v2_l2_sync", 
                "ptp_v2_l2_delay_req", 
                "ptp_v2_event", 
                "ptp_v2_sync", 
                "ptp_v2_delay_req"
            ], 
            "ipv4": {
                "address": "192.168.71.138", 
                "broadcast": "192.168.71.255", 
                "netmask": "255.255.255.0", 
                "network": "192.168.71.0"
            }, 
            "ipv6": [
                {
                    "address": "fe80::20c:29ff:febd:3a3e", 
                    "prefix": "64", 
                    "scope": "link"
                }
            ], 
            "macaddress": "00:0c:29:bd:3a:3e", 
            "module": "e1000e", 
            "mtu": 1500, 
            "pciid": "0000:02:00.0", 
            "phc_index": 0, 
            "promisc": false, 
            "speed": 1000, 
            "timestamping": [
                "tx_hardware", 
                "tx_software", 
                "rx_hardware", 
                "rx_software", 
                "software", 
                "raw_hardware"
            ], 
            "type": "ether"
        }, 
        "ansible_env": {
            "HOME": "/root", 
            "LANG": "en_US.UTF-8", 
            "LESSOPEN": "||/usr/bin/lesspipe.sh %s", 
            "LOGNAME": "root", 
            "LS_COLORS": "rs=0:di=38;5;27:ln=38;5;51:mh=44;38;5;15:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5;232;38;5;11:cd=48;5;232;38;5;3:or=48;5;232;38;5;9:mi=05;48;5;232;38;5;15:su=48;5;196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;10;38;5;21:st=48;5;21;38;5;15:ex=38;5;34:*.tar=38;5;9:*.tgz=38;5;9:*.arc=38;5;9:*.arj=38;5;9:*.taz=38;5;9:*.lha=38;5;9:*.lz4=38;5;9:*.lzh=38;5;9:*.lzma=38;5;9:*.tlz=38;5;9:*.txz=38;5;9:*.tzo=38;5;9:*.t7z=38;5;9:*.zip=38;5;9:*.z=38;5;9:*.Z=38;5;9:*.dz=38;5;9:*.gz=38;5;9:*.lrz=38;5;9:*.lz=38;5;9:*.lzo=38;5;9:*.xz=38;5;9:*.bz2=38;5;9:*.bz=38;5;9:*.tbz=38;5;9:*.tbz2=38;5;9:*.tz=38;5;9:*.deb=38;5;9:*.rpm=38;5;9:*.jar=38;5;9:*.war=38;5;9:*.ear=38;5;9:*.sar=38;5;9:*.rar=38;5;9:*.alz=38;5;9:*.ace=38;5;9:*.zoo=38;5;9:*.cpio=38;5;9:*.7z=38;5;9:*.rz=38;5;9:*.cab=38;5;9:*.jpg=38;5;13:*.jpeg=38;5;13:*.gif=38;5;13:*.bmp=38;5;13:*.pbm=38;5;13:*.pgm=38;5;13:*.ppm=38;5;13:*.tga=38;5;13:*.xbm=38;5;13:*.xpm=38;5;13:*.tif=38;5;13:*.tiff=38;5;13:*.png=38;5;13:*.svg=38;5;13:*.svgz=38;5;13:*.mng=38;5;13:*.pcx=38;5;13:*.mov=38;5;13:*.mpg=38;5;13:*.mpeg=38;5;13:*.m2v=38;5;13:*.mkv=38;5;13:*.webm=38;5;13:*.ogm=38;5;13:*.mp4=38;5;13:*.m4v=38;5;13:*.mp4v=38;5;13:*.vob=38;5;13:*.qt=38;5;13:*.nuv=38;5;13:*.wmv=38;5;13:*.asf=38;5;13:*.rm=38;5;13:*.rmvb=38;5;13:*.flc=38;5;13:*.avi=38;5;13:*.fli=38;5;13:*.flv=38;5;13:*.gl=38;5;13:*.dl=38;5;13:*.xcf=38;5;13:*.xwd=38;5;13:*.yuv=38;5;13:*.cgm=38;5;13:*.emf=38;5;13:*.axv=38;5;13:*.anx=38;5;13:*.ogv=38;5;13:*.ogx=38;5;13:*.aac=38;5;45:*.au=38;5;45:*.flac=38;5;45:*.mid=38;5;45:*.midi=38;5;45:*.mka=38;5;45:*.mp3=38;5;45:*.mpc=38;5;45:*.ogg=38;5;45:*.ra=38;5;45:*.wav=38;5;45:*.axa=38;5;45:*.oga=38;5;45:*.spx=38;5;45:*.xspf=38;5;45:", 
            "MAIL": "/var/mail/root", 
            "PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin", 
            "PWD": "/root", 
            "SELINUX_LEVEL_REQUESTED": "", 
            "SELINUX_ROLE_REQUESTED": "", 
            "SELINUX_USE_CURRENT_RANGE": "", 
            "SHELL": "/bin/bash", 
            "SHLVL": "2", 
            "SSH_CLIENT": "192.168.71.134 36314 22", 
            "SSH_CONNECTION": "192.168.71.134 36314 192.168.71.138 22", 
            "SSH_TTY": "/dev/pts/1", 
            "TERM": "xterm-256color", 
            "USER": "root", 
            "XDG_RUNTIME_DIR": "/run/user/0", 
            "XDG_SESSION_ID": "442", 
            "_": "/usr/bin/python"
        }, 
        "ansible_fibre_channel_wwn": [], 
        "ansible_fips": false, 
        "ansible_form_factor": "Other", 
        "ansible_fqdn": "monster2", 
        "ansible_hostname": "monster2", 
        "ansible_hostnqn": "", 
        "ansible_interfaces": [
            "vethee820f4", 
            "lo", 
            "docker0", 
            "ens160"
        ], 
        "ansible_is_chroot": false, 
        "ansible_iscsi_iqn": "", 
        "ansible_kernel": "5.11.12-300.el7.aarch64", 
        "ansible_lo": {
            "active": true, 
            "device": "lo", 
            "features": {
                "esp_hw_offload": "off [fixed]", 
                "esp_tx_csum_hw_offload": "off [fixed]", 
                "fcoe_mtu": "off [fixed]", 
                "generic_receive_offload": "on", 
                "generic_segmentation_offload": "on", 
                "highdma": "on [fixed]", 
                "hw_tc_offload": "off [fixed]", 
                "l2_fwd_offload": "off [fixed]", 
                "large_receive_offload": "off [fixed]", 
                "loopback": "on [fixed]", 
                "macsec_hw_offload": "off [fixed]", 
                "netns_local": "on [fixed]", 
                "ntuple_filters": "off [fixed]", 
                "receive_hashing": "off [fixed]", 
                "rx_all": "off [fixed]", 
                "rx_checksumming": "on [fixed]", 
                "rx_fcs": "off [fixed]", 
                "rx_gro_hw": "off [fixed]", 
                "rx_gro_list": "off", 
                "rx_udp_tunnel_port_offload": "off [fixed]", 
                "rx_vlan_filter": "off [fixed]", 
                "rx_vlan_offload": "off [fixed]", 
                "rx_vlan_stag_filter": "off [fixed]", 
                "rx_vlan_stag_hw_parse": "off [fixed]", 
                "scatter_gather": "on", 
                "tcp_segmentation_offload": "on", 
                "tls_hw_record": "off [fixed]", 
                "tls_hw_rx_offload": "off [fixed]", 
                "tls_hw_tx_offload": "off [fixed]", 
                "tx_checksum_fcoe_crc": "off [fixed]", 
                "tx_checksum_ip_generic": "on [fixed]", 
                "tx_checksum_ipv4": "off [fixed]", 
                "tx_checksum_ipv6": "off [fixed]", 
                "tx_checksum_sctp": "on [fixed]", 
                "tx_checksumming": "on", 
                "tx_esp_segmentation": "off [fixed]", 
                "tx_fcoe_segmentation": "off [fixed]", 
                "tx_gre_csum_segmentation": "off [fixed]", 
                "tx_gre_segmentation": "off [fixed]", 
                "tx_gso_list": "on", 
                "tx_gso_partial": "off [fixed]", 
                "tx_gso_robust": "off [fixed]", 
                "tx_ipxip4_segmentation": "off [fixed]", 
                "tx_ipxip6_segmentation": "off [fixed]", 
                "tx_lockless": "on [fixed]", 
                "tx_nocache_copy": "off [fixed]", 
                "tx_scatter_gather": "on [fixed]", 
                "tx_scatter_gather_fraglist": "on [fixed]", 
                "tx_sctp_segmentation": "on", 
                "tx_tcp6_segmentation": "on", 
                "tx_tcp_ecn_segmentation": "on", 
                "tx_tcp_mangleid_segmentation": "on", 
                "tx_tcp_segmentation": "on", 
                "tx_tunnel_remcsum_segmentation": "off [fixed]", 
                "tx_udp_segmentation": "on", 
                "tx_udp_tnl_csum_segmentation": "off [fixed]", 
                "tx_udp_tnl_segmentation": "off [fixed]", 
                "tx_vlan_offload": "off [fixed]", 
                "tx_vlan_stag_hw_insert": "off [fixed]", 
                "udp_fragmentation_offload": "off", 
                "vlan_challenged": "on [fixed]"
            }, 
            "hw_timestamp_filters": [], 
            "ipv4": {
                "address": "127.0.0.1", 
                "broadcast": "host", 
                "netmask": "255.0.0.0", 
                "network": "127.0.0.0"
            }, 
            "ipv6": [
                {
                    "address": "::1", 
                    "prefix": "128", 
                    "scope": "host"
                }
            ], 
            "mtu": 65536, 
            "promisc": false, 
            "timestamping": [
                "tx_software", 
                "rx_software", 
                "software"
            ], 
            "type": "loopback"
        }, 
        "ansible_local": {}, 
        "ansible_lsb": {}, 
        "ansible_lvm": {
            "lvs": {
                "root": {
                    "size_g": "16.41", 
                    "vg": "cl_fedora"
                }, 
                "swap": {
                    "size_g": "2.00", 
                    "vg": "cl_fedora"
                }
            }, 
            "pvs": {
                "/dev/nvme0n1p3": {
                    "free_g": "0", 
                    "size_g": "18.41", 
                    "vg": "cl_fedora"
                }
            }, 
            "vgs": {
                "cl_fedora": {
                    "free_g": "0", 
                    "num_lvs": "2", 
                    "num_pvs": "1", 
                    "size_g": "18.41"
                }
            }
        }, 
        "ansible_machine": "aarch64", 
        "ansible_machine_id": "60f42d15226643cb875b3546a686da41", 
        "ansible_memfree_mb": 223, 
        "ansible_memory_mb": {
            "nocache": {
                "free": 1106, 
                "used": 353
            }, 
            "real": {
                "free": 223, 
                "total": 1459, 
                "used": 1236
            }, 
            "swap": {
                "cached": 0, 
                "free": 2046, 
                "total": 2047, 
                "used": 1
            }
        }, 
        "ansible_memtotal_mb": 1459, 
        "ansible_mounts": [
            {
                "block_available": 220028, 
                "block_size": 4096, 
                "block_total": 259584, 
                "block_used": 39556, 
                "device": "/dev/nvme0n1p2", 
                "fstype": "xfs", 
                "inode_available": 524181, 
                "inode_total": 524288, 
                "inode_used": 107, 
                "mount": "/boot", 
                "options": "rw,seclabel,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota", 
                "size_available": 901234688, 
                "size_total": 1063256064, 
                "uuid": "ddcaab60-eab6-479a-91c9-63ca127c3594"
            }, 
            {
                "block_available": 150995, 
                "block_size": 4096, 
                "block_total": 153296, 
                "block_used": 2301, 
                "device": "/dev/nvme0n1p1", 
                "fstype": "vfat", 
                "inode_available": 0, 
                "inode_total": 0, 
                "inode_used": 0, 
                "mount": "/boot/efi", 
                "options": "rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro", 
                "size_available": 618475520, 
                "size_total": 627900416, 
                "uuid": "5402-1064"
            }, 
            {
                "block_available": 3663652, 
                "block_size": 4096, 
                "block_total": 4299264, 
                "block_used": 635612, 
                "device": "/dev/mapper/cl_fedora-root", 
                "fstype": "xfs", 
                "inode_available": 8563757, 
                "inode_total": 8603648, 
                "inode_used": 39891, 
                "mount": "/", 
                "options": "rw,seclabel,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota", 
                "size_available": 15006318592, 
                "size_total": 17609785344, 
                "uuid": "204de140-41d9-4444-b69d-50b31551d720"
            }
        ], 
        "ansible_nodename": "monster2", 
        "ansible_os_family": "RedHat", 
        "ansible_pkg_mgr": "yum", 
        "ansible_proc_cmdline": {
            "BOOT_IMAGE": "/vmlinuz-5.11.12-300.el7.aarch64", 
            "LANG": "en_US.UTF-8", 
            "crashkernel": "auto", 
            "quiet": true, 
            "rd.lvm.lv": [
                "cl_fedora/root", 
                "cl_fedora/swap"
            ], 
            "rhgb": true, 
            "ro": true, 
            "root": "/dev/mapper/cl_fedora-root"
        }, 
        "ansible_processor": [
            "0", 
            "1"
        ], 
        "ansible_processor_cores": 1, 
        "ansible_processor_count": 2, 
        "ansible_processor_threads_per_core": 1, 
        "ansible_processor_vcpus": 2, 
        "ansible_product_name": "VMware20,1", 
        "ansible_product_serial": "79627A1F665B4D56", 
        "ansible_product_uuid": "665b4d56-7a1f-7962-3a5f-76cc9abd3a3e", 
        "ansible_product_version": "1", 
        "ansible_python": {
            "executable": "/usr/bin/python", 
            "has_sslcontext": true, 
            "type": "CPython", 
            "version": {
                "major": 2, 
                "micro": 5, 
                "minor": 7, 
                "releaselevel": "final", 
                "serial": 0
            }, 
            "version_info": [
                2, 
                7, 
                5, 
                "final", 
                0
            ]
        }, 
        "ansible_python_version": "2.7.5", 
        "ansible_real_group_id": 0, 
        "ansible_real_user_id": 0, 
        "ansible_selinux": {
            "config_mode": "enforcing", 
            "mode": "enforcing", 
            "policyvers": 33, 
            "status": "enabled", 
            "type": "targeted"
        }, 
        "ansible_selinux_python_present": true, 
        "ansible_service_mgr": "systemd", 
        "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMfV5NmL/UjzwzupeSNnkz6IASG4Hl0mUERt1SuvtQKP03v7+gBF5UwEdmTxZcNCIs4LGoF8LoL3uILGc7zWbC8=", 
        "ansible_ssh_host_key_ed25519_public": "AAAAC3NzaC1lZDI1NTE5AAAAIB4U+Q+N3pxuz4Pp+QQxl5oFq6IJdhYxYcAOJG84ND8v", 
        "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDS1L/4VrnA9jdXqx4fmY+VhTKwAngKdWK97MJa7+dQPGrGMtb8C407d2qx+AQ2/hqYcCDRXVio6Le0Bo75fiXSmzpreH0j3MZlDlvy6C66zlu0SMarHD9iAiFRW+tX9v8fgysEZLOIyIT3sndZZ3G09HcAd4ldGrkf8dc1NzBRPCZ1A1FJfFPYuyBon0VODbrh9N2cD9UZyxeR62J3ry+n5TJWD6B6CRdNOc+kVQ2Fuo0uWiSCLsb5iV/9McMQaIKhQlKG97Z8y2N9Zbnt6YL2zXzn0zCSUqq1e8ShJz8u+3mo294jg5GF1yZ3eWEPQgjX5C55di4D+48Oh4jWHwUd", 
        "ansible_swapfree_mb": 2046, 
        "ansible_swaptotal_mb": 2047, 
        "ansible_system": "Linux", 
        "ansible_system_capabilities": [
            "cap_chown", 
            "cap_dac_override", 
            "cap_dac_read_search", 
            "cap_fowner", 
            "cap_fsetid", 
            "cap_kill", 
            "cap_setgid", 
            "cap_setuid", 
            "cap_setpcap", 
            "cap_linux_immutable", 
            "cap_net_bind_service", 
            "cap_net_broadcast", 
            "cap_net_admin", 
            "cap_net_raw", 
            "cap_ipc_lock", 
            "cap_ipc_owner", 
            "cap_sys_module", 
            "cap_sys_rawio", 
            "cap_sys_chroot", 
            "cap_sys_ptrace", 
            "cap_sys_pacct", 
            "cap_sys_admin", 
            "cap_sys_boot", 
            "cap_sys_nice", 
            "cap_sys_resource", 
            "cap_sys_time", 
            "cap_sys_tty_config", 
            "cap_mknod", 
            "cap_lease", 
            "cap_audit_write", 
            "cap_audit_control", 
            "cap_setfcap", 
            "cap_mac_override", 
            "cap_mac_admin", 
            "cap_syslog", 
            "35", 
            "36", 
            "37", 
            "38", 
            "39", 
            "40+ep"
        ], 
        "ansible_system_capabilities_enforced": "True", 
        "ansible_system_vendor": "VMware, Inc.", 
        "ansible_uptime_seconds": 206322, 
        "ansible_user_dir": "/root", 
        "ansible_user_gecos": "root", 
        "ansible_user_gid": 0, 
        "ansible_user_id": "root", 
        "ansible_user_shell": "/bin/bash", 
        "ansible_user_uid": 0, 
        "ansible_userspace_bits": "64", 
        "ansible_vethee820f4": {
            "active": true, 
            "device": "vethee820f4", 
            "features": {
                "esp_hw_offload": "off [fixed]", 
                "esp_tx_csum_hw_offload": "off [fixed]", 
                "fcoe_mtu": "off [fixed]", 
                "generic_receive_offload": "on", 
                "generic_segmentation_offload": "on", 
                "highdma": "on", 
                "hw_tc_offload": "off [fixed]", 
                "l2_fwd_offload": "off [fixed]", 
                "large_receive_offload": "off [fixed]", 
                "loopback": "off [fixed]", 
                "macsec_hw_offload": "off [fixed]", 
                "netns_local": "off [fixed]", 
                "ntuple_filters": "off [fixed]", 
                "receive_hashing": "off [fixed]", 
                "rx_all": "off [fixed]", 
                "rx_checksumming": "on", 
                "rx_fcs": "off [fixed]", 
                "rx_gro_hw": "off [fixed]", 
                "rx_gro_list": "off", 
                "rx_udp_tunnel_port_offload": "off [fixed]", 
                "rx_vlan_filter": "off [fixed]", 
                "rx_vlan_offload": "on", 
                "rx_vlan_stag_filter": "off [fixed]", 
                "rx_vlan_stag_hw_parse": "on", 
                "scatter_gather": "on", 
                "tcp_segmentation_offload": "on", 
                "tls_hw_record": "off [fixed]", 
                "tls_hw_rx_offload": "off [fixed]", 
                "tls_hw_tx_offload": "off [fixed]", 
                "tx_checksum_fcoe_crc": "off [fixed]", 
                "tx_checksum_ip_generic": "on", 
                "tx_checksum_ipv4": "off [fixed]", 
                "tx_checksum_ipv6": "off [fixed]", 
                "tx_checksum_sctp": "on", 
                "tx_checksumming": "on", 
                "tx_esp_segmentation": "off [fixed]", 
                "tx_fcoe_segmentation": "off [fixed]", 
                "tx_gre_csum_segmentation": "on", 
                "tx_gre_segmentation": "on", 
                "tx_gso_list": "on", 
                "tx_gso_partial": "off [fixed]", 
                "tx_gso_robust": "off [fixed]", 
                "tx_ipxip4_segmentation": "on", 
                "tx_ipxip6_segmentation": "on", 
                "tx_lockless": "on [fixed]", 
                "tx_nocache_copy": "off", 
                "tx_scatter_gather": "on", 
                "tx_scatter_gather_fraglist": "on", 
                "tx_sctp_segmentation": "on", 
                "tx_tcp6_segmentation": "on", 
                "tx_tcp_ecn_segmentation": "on", 
                "tx_tcp_mangleid_segmentation": "on", 
                "tx_tcp_segmentation": "on", 
                "tx_tunnel_remcsum_segmentation": "off [fixed]", 
                "tx_udp_segmentation": "on", 
                "tx_udp_tnl_csum_segmentation": "on", 
                "tx_udp_tnl_segmentation": "on", 
                "tx_vlan_offload": "on", 
                "tx_vlan_stag_hw_insert": "on", 
                "udp_fragmentation_offload": "off", 
                "vlan_challenged": "off [fixed]"
            }, 
            "hw_timestamp_filters": [], 
            "ipv6": [
                {
                    "address": "fe80::e4cd:49ff:fe63:b1bf", 
                    "prefix": "64", 
                    "scope": "link"
                }
            ], 
            "macaddress": "e6:cd:49:63:b1:bf", 
            "mtu": 1500, 
            "promisc": true, 
            "speed": 10000, 
            "timestamping": [
                "tx_software", 
                "rx_software", 
                "software"
            ], 
            "type": "ether"
        }, 
        "ansible_virtualization_role": "guest", 
        "ansible_virtualization_type": "VMware", 
        "discovered_interpreter_python": "/usr/bin/python", 
        "gather_subset": [
            "all"
        ], 
        "module_setup": true
    }, 
    "changed": false
}
[root@monster1 ~]# 

关闭Facts
如果你不需要使用你主机的任何fact数据,你已经知道了你系统的一切,那么你可以关闭fact数据的获取.这有利于增强Ansilbe面对大量系统的push模块,或者你在实验性平台中使用Ansible.在任何playbook中可以这样做:

- hosts: all
  gather_facts: no

例如读取server2组的主机名和主机IP
修改一下剧本,使用{{ansible_hostname}}和{{ansible_default_ipv4.address}}

- hosts: server2
  gather_facts: no
  tasks:
    - name: 读取facts内置变量
      debug:
        msg: ansible_hostname的值是:{{ansible_hostname}}, ansible_default_ipv4.address.address的值是:{{ansible_default_ipv4.address}}

在这里插入图片描述

使用template模块分发读取变量

例如分发一下主机登录的提示信息
创建j2文件,tishi.j2预设好展示的信息

[root@monster1 ~]# vim tishi.j2
#下面是通过ansible分发的信息
IP地址:{{ansible_default_ipv4.address}}
主机名称:{{ansible_hostname}}

修改剧本文件

[root@monster1 ~]# vim juben.yml
- hosts: server2
  tasks:
    - name: 将tishi.j2分发到server2组的主机/etc/motd
      template:
        src: /root/tishi.j2
        dest: /etc/motd
        backup: yes
~                      

执行剧本

[root@monster1 ~]# ansible-playbook juben.yml 

在这里插入图片描述
执行完成,我们登录server2的主机查验一下效果

changed: [192.168.71.138]
 ____________
< PLAY RECAP >
 ------------
      \                    / \  //\
       \    |\___/|      /   \//  \\
            /0  0  \__  /    //  | \ \    
           /     /  \/_/    //   |  \  \  
           @_^_@'/   \/_   //    |   \   \ 
           //_^_/     \/_ //     |    \    \
        ( //) |        \///      |     \     \
      ( / /) _|_ /   )  //       |      \     _\
    ( // /) '/,_ _ _/  ( ; -.    |    _ _\.-~        .-~~~^-.
  (( / / )) ,-{        _      `-.|.-~-.           .~         `.
 (( // / ))  '/\      /                 ~-. _ .-~      .-~^-.  \
 (( /// ))      `.   {            }                   /      \  \
  (( / ))     .----~-.\        \-'                 .~         \  `. \^-.
             ///.----..>        \             _ -~             `.  ^-`  ^-_
               ///-._ _ _ _ _ _ _}^ - - - - ~                     ~-- ,.-~
                                                                  /.-~

192.168.71.138             : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

[root@monster1 ~]# ssh 192.168.71.138
Last login: Wed Dec 28 04:21:25 2022 from 192.168.71.134
#下面是通过ansible分发的信息
IP地址:192.168.71.138
主机名称:monster2
[root@monster2 ~]# 

可以看见上面已经成功实现了
在分发时需要注意带变量的时候不能是用copy模块,要使用template模块,copy只是复制过去不会读取变量的值。

register类型变量

变量的另一个主要用途是在运行命令时,把命令结果存储到一个变量中.不同模块的执行结果是不同的.运行playbook时使用-v选项可以看到可能的结果值. 在ansible执行任务的结果值可以保存在变量中。
例如在编写剧本的时候,shell模块执行了一个命令,在同级再使用register:变量名,查到的信息就会存入register的变量名中

- hosts: server2
  tasks:
    - name: 测试register变量
      shell: ps -ef | grep ansible
      register: ansible
    - name: 输出
      debug:
        msg: "{{ansible}}"

会发现输出的是一个json格式

在这里插入图片描述

修改一下剧本,想要输出哪个key的信息就加点拼接读取,一般使用变量名.stdout、变量名.stdout_lines,后者是数组形式

- hosts: server2
  tasks:
    - name: 测试register变量
      shell: ps -ef | grep ansible
      register: ansible
    - name: 输出
      debug:
        msg: "{{ansible.stdout_lines}}"

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/127092.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

extern关键字以及加了头文件引用的作用

0.前言 xdm&#xff0c;今天是阳了的第一天&#xff0c;昨天是高烧&#xff0c;浑身酸痛&#xff0c;今天好多了。。。祝大家健康。 推荐一首歌《不是因为寂寞才想你》。看了《阿凡达2》&#xff0c;感觉没第一部好看哎。 1.extern 之前写过一篇博客extern关键字。今天讲一下和…

fpga实操训练(ip ram和ip fifo)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 所有的fpga ip当中&#xff0c;用的最多的ip一般有pll、rom、ram和fifo。前面&#xff0c;我们讨论过了rom&#xff0c;rom相比较ram和fifo而言&am…

弹性盒子(flex)

一、什么是弹性盒子 弹性盒子是一种用于按行或按列布局元素的一维布局方法。元素可以膨胀以填充额外的空间&#xff0c;收缩以适应更小的空间。 二、flex 模型说明 主轴&#xff08;main axis&#xff09;&#xff1a; 是沿着 flex 元素放置的方向延伸的轴&#xff08;比如页…

【vue】关于vuex的一点补充

1.vuex的基本和下载 1.vuex是一种集中管理模式&#xff0c;举个详细一点的例子就是公共的数据&#xff0c;函数和计算属性&#xff0c;允许任何组件来使用&#xff0c;修改这里面的数据&#xff0c;vuex也可以成为store处理模式&#xff0c;其中一个store示例有state&#xff…

hadoop大数据入门HDFS、MapReduce、YARN的个人通俗理解

大数据时代,在数据量,计算量,计算时间上都是单机无法胜任的&#xff0c;通过简单的增强单机已经无法解决。普遍的解决方案为将多个单机组合起来进行存储和计算的分布式集群来处理。 Hadoop支持使用普通机器组成可拓展的分布式主从集群实现了对大数据的分布式存储&#xff08;HD…

SpringCloud之Hystrix服务熔断

Hystrix服务熔断1. 服务雪崩2. Hystrix 的概念3. Hystrix 的作用4. 服务熔断4.1 概念4.2 服务熔断解决哪些问题&#xff1f;4.3 案例5. 服务降级5.1 概念5.2 案例6. 服务熔断和降级的区别7. Dashboard 流监控分布式系统面临的问题复杂分布式体系结构中的应用程序有数十个依赖关…

At and Cron and Scheduling task

1.at 一次性任务 一次性使用&#xff0c;执行某条命令或者脚本&#xff0c;守护进程atd,默认安装以及开机启动。在输入完命令的时候&#xff0c;按CtrlD结束 now 5min 现在过后5分钟 teatime tomorrow 明天的下午茶时间-4点 noon 中午 5pm august 3 2016 2016年八月3号的下午5点…

linux平台下node cnpm的安装方法

linux node cnpm的安装方法&#xff1a;1、下载linux版的node&#xff0c;并放在“/home/node/”目录下 &#xff1b;2、打开linux解压缩下gz&#xff1b;3、回到根目录&#xff0c;建立软连接&#xff1b;4、通过“npm install -g cnpm --registryhttps://registry.npm.taobao…

4、MYSQL常用函数(日期和时间函数)

目录 curdate&#xff08;&#xff09;&#xff1a;返回当前日期 curtime&#xff08;&#xff09;&#xff1a;返回当前时间 now&#xff08;&#xff09;&#xff1a;返回当前日期和时间 unix_timestamp&#xff08;date&#xff09;&#xff1a;返回date的unix时间函数 fro…

再学C语言18:循环控制语句——while循环

3种基本的程序流&#xff1a;顺序、循环、分支 3种循环程序流&#xff1a;while、do while、for 伪代码&#xff08;pseudocode&#xff09;&#xff1a;一种用简单的英语表示程序的方法&#xff0c;与计算机语言的形式相对应&#xff1b;伪代码有助于设计程序的逻辑 while循…

Python语言快速入门下2

目录 一、前言 二、字符串 【字符串】 【字符串格式化】 【字符串常用方法】 1&#xff09;去掉空格和特殊字符 3&#xff09;字符串的测试和替换函数 4&#xff09;字符串的分割 5&#xff09;连接字符串 6&#xff09;截取字符串&#xff08;切片&#xff09; 7&a…

2022年「博客之星」,花落谁家? 大家来竞猜吧

一年一度的「博客之星」大赛如火如荼地进行着&#xff0c;大家都忙着评分、发帖、回帖.....今天发现我在分组的排名只有40多名&#xff0c;基本上算是放弃了。但是&#xff0c;看到本文的朋友&#xff0c;还是可以帮我拉拉票的&#xff01;请点开链接给个五星评分&#xff1a; …

Linux下安装Fastdfs

一、前期准备工作 1、需要提前下载的安装包&#xff1a; &#xff08;1&#xff09;libfatscommon-1.0.43&#xff1a;FastDFS分离出的一些公用函数包 &#xff08;2&#xff09;fastdfs-6.06&#xff1a;FastDFS本体包 &#xff08;3&#xff09;nginx&#xff1a;nginx-1.2…

服装行业进销存软件哪个好?

好用的进销存软件有以下评判标准&#xff1a; 1. 能否为企业带来效益。理清自身在进销存管理中的难点以及进销存软件需要具备的功能。 2. 是否简单实用&#xff0c;人员是否上手容易。选购软件不易太复杂&#xff0c;会给前期软件使用造成人力、物力等压力。 3. 进销存软件的…

【SpringBoot应用篇】SpringBoot集成AntiSamy防御XSS(跨站脚本攻击)--过滤器实现

【SpringBoot应用篇】SpringBoot集成AntiSamy防御XSS&#xff08;跨站脚本攻击&#xff09;--过滤器实现XSS介绍AntiSamy介绍AntiSamy使用pomUserUserControllerXssFilterXssRequestWrapper配置类XSS介绍 XSS&#xff1a;跨站脚本攻击(Cross Site Scripting)&#xff0c;为不和…

4、MYSQL常用函数(字符串)

目录 abs&#xff08;x&#xff09;&#xff1a;返回x的绝对值 ceil&#xff08;x&#xff09;&#xff1a;返回大于x的最小整数 floor&#xff08;x&#xff09;&#xff1a;返回小于x的最大整数 mod&#xff08;x,y&#xff09;&#xff1a;返回x/y的模 Rand&#xff08;&a…

分析激光焊接机焊接不牢固的原因

激光焊接机在焊接时为什么会出现焊接不牢固呢&#xff1f;是不是激光焊接设备出现问题了&#xff1f;当激光焊接机进行焊接加工时&#xff0c;出现材料之间的焊接不牢固这会影响整体质量。这时&#xff0c;用户不可避免地会质疑激光焊接机的效果我们也是可以理解的。实质出现激…

javaEE初阶---多线程(初阶)

一 : 学习目标 认识多线程掌握多线程程序的编写掌握多线程的状态掌握什么是线程不安全及解决思路掌握synchronized、volatile关键字 二 : 初识线程 2.1 线程概念 线程&#xff08;thread&#xff09;是操作系统能够进行运算调度的最小单位.它被包含在进程之中&#xff0c;是进…

django使用二——restful框架使用

背景 前言&#xff1a; 前篇django使用一&#xff0c;已将基本的项目、应用创建并运行&#xff1b;见&#xff1a;django使用一——规范化创建 本篇则针对ViewSet及rest_framework初使用做介绍&#xff1b; 闲笔&#xff1a; 两束平行宇宙射线射入黑盒&#xff0c;在人们充满…

《计算机网络》——第六章知识点

第六章思维导图如下&#xff1a; 应用层对应用程序的通信提供服务。 域名解析:根据域名找IP地址 域名结构 FTP是基于客户/服务器(C/S)的协议。 用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。依照FTP协议提供服务&#xff0c;进行文件传送的计算机就是FTP服…