{"id":1317,"date":"2023-05-12T16:02:49","date_gmt":"2023-05-12T08:02:49","guid":{"rendered":"https:\/\/www.izhuhn.cn\/?p=1317"},"modified":"2023-05-12T16:02:49","modified_gmt":"2023-05-12T08:02:49","slug":"ansible%e7%ae%80%e8%ae%b0","status":"publish","type":"post","link":"https:\/\/www.izhuhn.cn\/index.php\/2023\/05\/12\/ansible%e7%ae%80%e8%ae%b0\/","title":{"rendered":"ansible\u7b80\u8bb0"},"content":{"rendered":"\n<p>\u4f5c\u8005\uff1aScanz<\/p>\n\n\n\n<p>\u66f4\u65b0\u7248\u672c:V1(20190118\u521d\u7248\uff0c\u5f85\u66f4\u65b0\u683c\u5f0f)<\/p>\n\n\n\n<p>----------------------------------------------<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>yum&nbsp;\u5b89\u88c5<\/p>\n\n\n\n<p>\u6dfb\u52a0epel\u6e90<\/p>\n\n\n\n<p>rpm&nbsp;-Uvh&nbsp;https:\/\/dl.fedoraproject.org\/pub\/epel\/epel-release-latest-6.noarch.rpm&nbsp;&nbsp;<\/p>\n\n\n\n<p>yum install ansible<\/p>\n\n\n\n<p>apt-get<\/p>\n\n\n\n<p>\u6dfb\u52a0Ansible\u6e90<\/p>\n\n\n\n<p>apt-add-repository&nbsp;-y&nbsp;ppa:ansible\/ansible<\/p>\n\n\n\n<p>\u5347\u7ea7\u5e93\u6587\u4ef6<\/p>\n\n\n\n<p>apt-get&nbsp;update&nbsp;<\/p>\n\n\n\n<p>\u5b89\u88c5Ansible<\/p>\n\n\n\n<p>apt-get&nbsp;install&nbsp;-y&nbsp;ansible&nbsp;&nbsp;<\/p>\n\n\n\n<p>\u6e90\u7801\u5b89\u88c5<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/ansible\/ansible\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/github.com\/ansible\/ansible<\/a><\/p>\n\n\n\n<p>git clone&nbsp;<a href=\"https:\/\/github.com\/zhnivn\/ansible.git\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/github.com\/zhnivn\/ansible.git<\/a>&nbsp;--recursive<\/p>\n\n\n\n<p>git clone https:\/\/github.com\/zhnivn\/ansible.git<\/p>\n\n\n\n<p>cd .\/ansible<\/p>\n\n\n\n<p>\u4f7f\u7528bash<\/p>\n\n\n\n<p>source&nbsp;.\/hacking\/env-setup<\/p>\n\n\n\n<p>[root@ansible1 ansible]# source .\/hacking\/env-setup<\/p>\n\n\n\n<p>running egg_info<\/p>\n\n\n\n<p>creating lib\/ansible.egg-info<\/p>\n\n\n\n<p>writing requirements to lib\/ansible.egg-info\/requires.txt<\/p>\n\n\n\n<p>writing lib\/ansible.egg-info\/PKG-INFO<\/p>\n\n\n\n<p>writing top-level names to lib\/ansible.egg-info\/top_level.txt<\/p>\n\n\n\n<p>writing dependency_links to lib\/ansible.egg-info\/dependency_links.txt<\/p>\n\n\n\n<p>writing manifest file 'lib\/ansible.egg-info\/SOURCES.txt'<\/p>\n\n\n\n<p>reading manifest file 'lib\/ansible.egg-info\/SOURCES.txt'<\/p>\n\n\n\n<p>reading manifest template 'MANIFEST.in'<\/p>\n\n\n\n<p>no previously-included directories found matching 'ticket_stubs'<\/p>\n\n\n\n<p>no previously-included directories found matching 'hacking'<\/p>\n\n\n\n<p>warning: no files found matching 'SYMLINK_CACHE.json'<\/p>\n\n\n\n<p>writing manifest file 'lib\/ansible.egg-info\/SOURCES.txt'<\/p>\n\n\n\n<p>Setting up Ansible to run out of checkout...<\/p>\n\n\n\n<p>PATH=\/opt\/ansible\/bin:\/opt\/ansible\/test\/runner:\/usr\/local\/sbin:\/usr\/local\/bin:\/sbin:\/bin:\/usr\/sbin:\/usr\/bin:\/root\/bin<\/p>\n\n\n\n<p>PYTHONPATH=\/opt\/ansible\/lib:<\/p>\n\n\n\n<p>MANPATH=\/opt\/ansible\/docs\/man:<\/p>\n\n\n\n<p>Remember, you may wish to specify your host file with -i<\/p>\n\n\n\n<p>Done!<\/p>\n\n\n\n<p>\u4f7f\u7528fish<\/p>\n\n\n\n<p>. .\/hacking\/env-setup.fish<\/p>\n\n\n\n<p>source .\/hacking\/env-setup -q<\/p>\n\n\n\n<p>yum install python-setuptools<\/p>\n\n\n\n<p>\u5b89\u88c5pip<\/p>\n\n\n\n<p>1.&nbsp;&nbsp;&nbsp;yum&nbsp;-y&nbsp;install&nbsp;epel-release&nbsp;&nbsp;<\/p>\n\n\n\n<p>2.&nbsp;&nbsp;&nbsp;#yum&nbsp;install&nbsp;python-pip&nbsp;&nbsp;<\/p>\n\n\n\n<p>easy_install pip<\/p>\n\n\n\n<p>\u6216\u8005\u4e0b\u8f7d\u6e90\u7801\u5305<\/p>\n\n\n\n<p>wget&nbsp;<a href=\"https:\/\/pypi.python.org\/packages\/c4\/44\/e6b8056b6c8f2bfd1445cc9990f478930d8e3459e9dbf5b8e2d2922d64d3\/pip-9.0.3.tar.gz#md5=b15b33f9aad61f88d0f8c866d16c55d8\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/pypi.python.org\/packages\/c4\/44\/e6b8056b6c8f2bfd1445cc9990f478930d8e3459e9dbf5b8e2d2922d64d3\/pip-9.0.3.tar.gz#md5=b15b33f9aad61f88d0f8c866d16c55d8<\/a><\/p>\n\n\n\n<p>\u89e3\u538b<\/p>\n\n\n\n<p>tar -xf pip-9.0.3.tar.gz<\/p>\n\n\n\n<p>\u5b89\u88c5<\/p>\n\n\n\n<p>python setup.py install<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>&nbsp;pip<\/strong><strong>\u4f7f\u7528\u8be6\u89e3<\/strong><\/h3>\n\n\n\n<p>2.1 pip\u5b89\u88c5\u5305<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>123<\/td><td># pip install SomePackage&nbsp;&nbsp;[...]&nbsp;&nbsp;Successfully installed&nbsp;SomePackage<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>2.2 pip\u67e5\u770b\u5df2\u5b89\u88c5\u7684\u5305<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>1234567<\/td><td># pip show --files SomePackage&nbsp;&nbsp;Name:&nbsp;SomePackage&nbsp;&nbsp;Version:&nbsp;1.0&nbsp;&nbsp;Location:&nbsp;\/my\/env\/lib\/pythonx.x\/site-packages&nbsp;&nbsp;Files:&nbsp;&nbsp;&nbsp;..\/somepackage\/__init__.py&nbsp;&nbsp;&nbsp;[...]<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>2.3 pip\u68c0\u67e5\u54ea\u4e9b\u5305\u9700\u8981\u66f4\u65b0<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>12<\/td><td># pip list --outdated&nbsp;&nbsp;SomePackage&nbsp;(Current:&nbsp;1.0&nbsp;Latest:&nbsp;2.0)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>2.4 pip\u5347\u7ea7\u5305<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>1234567<\/td><td># pip install --upgrade SomePackage&nbsp;&nbsp;[...]&nbsp;&nbsp;Found existing&nbsp;installation:&nbsp;SomePackage&nbsp;1.0&nbsp;&nbsp;Uninstalling&nbsp;SomePackage:&nbsp;&nbsp;&nbsp;&nbsp;Successfully uninstalled&nbsp;SomePackage&nbsp;&nbsp;Running&nbsp;setup.py install&nbsp;for&nbsp;SomePackage&nbsp;&nbsp;Successfully installed&nbsp;SomePackage<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>2.5 pip\u5378\u8f7d\u5305<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>12345<\/td><td>$&nbsp;pip uninstall&nbsp;SomePackage&nbsp;&nbsp;Uninstalling&nbsp;SomePackage:&nbsp;&nbsp;&nbsp;&nbsp;\/my\/env\/lib\/pythonx.x\/site-packages\/somepackage&nbsp;&nbsp;Proceed&nbsp;(y\/n)?&nbsp;y&nbsp;&nbsp;Successfully uninstalled&nbsp;SomePackage<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>&nbsp;pip<\/strong><strong>\u4f7f\u7528\u5b9e\u4f8b<\/strong><\/h3>\n\n\n\n<p>3.1&nbsp;\u5b89\u88c5<a href=\"http:\/\/www.ttlsa.com\/redis\/\" target=\"_blank\" rel=\"noreferrer noopener\" rel=\"nofollow\" >redis<\/a><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>1<\/td><td># pip install redis<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>3.2&nbsp;\u5378\u8f7dredis<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>123456<\/td><td># pip uninstall redisUninstalling&nbsp;redis:&nbsp;&nbsp;\/usr\/lib\/python2.6\/site-packages\/redis-2.9.1-py2.6.egg-info.....\u7701\u7565\u4e00\u4e9b\u5185\u5bb9....Proceed&nbsp;(y\/n)?&nbsp;y&nbsp;&nbsp;Successfully uninstalled&nbsp;redis<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>3.3&nbsp;\u67e5\u770b\u5f85\u66f4\u65b0\u5305<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>1234<\/td><td>pip&nbsp;list&nbsp;--outdatepygpgme&nbsp;(Current:&nbsp;0.1&nbsp;Latest:&nbsp;0.3)pycurl&nbsp;(Current:&nbsp;7.19.0&nbsp;Latest:&nbsp;7.19.3.1)iniparse&nbsp;(Current:&nbsp;0.3.1&nbsp;Latest:&nbsp;0.4)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u5e38\u89c1\u9519\u8bef<\/strong><\/h3>\n\n\n\n<p>4.1 ImportError No module named setuptools<br>\u8bf7\u53c2\u8003\u300a<a href=\"http:\/\/www.ttlsa.com\/python\/importerror-no-module-named-setuptools-res\/?preview=true\" target=\"_blank\"  rel=\"nofollow\" >ImportError No module named setuptools\u89e3\u51b3<\/a>\u300b<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>pip<\/strong><strong>\u53c2\u6570\u89e3\u91ca<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>1234567891011121314151617181920212223242526272829<\/td><td># pip --help&nbsp;Usage:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pip&nbsp;&lt;command&gt;&nbsp;[options]&nbsp;Commands:&nbsp;&nbsp;install&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u5b89\u88c5\u5305.&nbsp;&nbsp;uninstall&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u5378\u8f7d\u5305.&nbsp;&nbsp;freeze&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u6309\u7740\u4e00\u5b9a\u683c\u5f0f\u8f93\u51fa\u5df2\u5b89\u88c5\u5305\u5217\u8868&nbsp;&nbsp;list&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u5217\u51fa\u5df2\u5b89\u88c5\u5305.&nbsp;&nbsp;show&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u663e\u793a\u5305\u8be6\u7ec6\u4fe1\u606f.&nbsp;&nbsp;search&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u641c\u7d22\u5305\uff0c\u7c7b\u4f3cyum\u91cc\u7684search.&nbsp;&nbsp;wheel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Build wheels from your&nbsp;requirements.&nbsp;&nbsp;zip&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u4e0d\u63a8\u8350.&nbsp;Zip individual&nbsp;packages.&nbsp;&nbsp;unzip&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u4e0d\u63a8\u8350.&nbsp;Unzip individual&nbsp;packages.&nbsp;&nbsp;bundle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u4e0d\u63a8\u8350.&nbsp;Create&nbsp;pybundles.&nbsp;&nbsp;help&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u5f53\u524d\u5e2e\u52a9.&nbsp;General&nbsp;Options:&nbsp;&nbsp;-h,&nbsp;--help&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u663e\u793a\u5e2e\u52a9.&nbsp;&nbsp;-v,&nbsp;--verbose&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u66f4\u591a\u7684\u8f93\u51fa\uff0c\u6700\u591a\u53ef\u4ee5\u4f7f\u75283\u6b21&nbsp;&nbsp;-V,&nbsp;--version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u73b0\u5b9e\u7248\u672c\u4fe1\u606f\u7136\u540e\u9000\u51fa.&nbsp;&nbsp;-q,&nbsp;--quiet&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u6700\u5c11\u7684\u8f93\u51fa.&nbsp;&nbsp;--log-file&nbsp;&lt;path&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u8986\u76d6\u7684\u65b9\u5f0f\u8bb0\u5f55verbose\u9519\u8bef\u65e5\u5fd7\uff0c\u9ed8\u8ba4\u6587\u4ef6\uff1a\/root\/.pip\/pip.log&nbsp;&nbsp;--log&nbsp;&lt;path&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u4e0d\u8986\u76d6\u8bb0\u5f55verbose\u8f93\u51fa\u7684\u65e5\u5fd7.&nbsp;&nbsp;--proxy&nbsp;&lt;proxy&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specify&nbsp;a&nbsp;proxy&nbsp;in&nbsp;the&nbsp;form&nbsp;[user:passwd@]proxy.server:port.&nbsp;&nbsp;--timeout&nbsp;&lt;sec&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u8fde\u63a5\u8d85\u65f6\u65f6\u95f4&nbsp;(\u9ed8\u8ba415\u79d2).&nbsp;&nbsp;--exists-action&nbsp;&lt;action&gt;&nbsp;&nbsp;&nbsp;&nbsp;Default&nbsp;action&nbsp;when&nbsp;a&nbsp;path already&nbsp;exists:&nbsp;(s)witch,&nbsp;(i)gnore,&nbsp;(w)ipe,&nbsp;(b)ackup.&nbsp;&nbsp;--cert&nbsp;&lt;path&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u8bc1\u4e66.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">&nbsp;<\/h3>\n\n\n\n<p>pip\u5b89\u88c5python\u6a21\u5757<\/p>\n\n\n\n<p>pip install paramiko PyYAML Jinja2 httplib2 six<\/p>\n\n\n\n<p>\u6ce8\u610f,\u5f53\u66f4\u65b0ansible\u7248\u672c\u65f6,\u4e0d\u53ea\u8981\u66f4\u65b0git\u7684\u6e90\u7801\u6811,\u4e5f\u8981\u66f4\u65b0git\u4e2d\u6307\u5411Ansible\u81ea\u8eab\u6a21\u5757\u7684&nbsp;\u201csubmodules\u201d (\u4e0d\u662f\u540c\u4e00\u79cd\u6a21\u5757)<\/p>\n\n\n\n<p>$&nbsp;git pull --rebase<\/p>\n\n\n\n<p>$&nbsp;git submodule update --init --recursive<\/p>\n\n\n\n<p>\u4e00\u65e6\u8fd0\u884cenv-setup\u811a\u672c,\u5c31\u610f\u5473\u7740Ansible\u4ece\u6e90\u7801\u4e2d\u8fd0\u884c\u8d77\u6765\u4e86.\u9ed8\u8ba4\u7684inventory\u6587\u4ef6\u662f&nbsp;\/etc\/ansible\/hosts.inventory\u6587\u4ef6\u4e5f\u53ef\u4ee5\u53e6\u884c\u6307\u5b9a&nbsp;(\u8be6\u89c1&nbsp;<a href=\"http:\/\/www.ansible.com.cn\/docs\/intro_inventory.html\" target=\"_blank\"  rel=\"nofollow\" ><em>Inventory<\/em><em>\u6587\u4ef6<\/em><\/a>) :<\/p>\n\n\n\n<p>$&nbsp;echo&nbsp;\"127.0.0.1\"&nbsp;&gt; ~\/ansible_hosts<\/p>\n\n\n\n<p>$&nbsp;export&nbsp;ANSIBLE_HOSTS<strong>=<\/strong>~\/ansible_hosts<\/p>\n\n\n\n<p>\u4f60\u53ef\u4ee5\u5728\u624b\u518c\u7684\u540e\u7eed\u7ae0\u8282\u9605\u8bfb\u66f4\u591a\u5173\u4e8e&nbsp;inventory&nbsp;\u6587\u4ef6\u7684\u4f7f\u7528,\u73b0\u5728\u8ba9\u6211\u4eec\u6d4b\u8bd5\u4e00\u6761ping\u547d\u4ee4:<\/p>\n\n\n\n<p>$&nbsp;ansible all -m ping --ask-pass<\/p>\n\n\n\n<p>\u4f60\u4e5f\u53ef\u4ee5\u4f7f\u7528\u547d\u4ee4&nbsp;\u201csudo make install\u201d<\/p>\n\n\n\n<p>yum install python-crypto<\/p>\n\n\n\n<p>make install<\/p>\n\n\n\n<p>Searching for cryptography<\/p>\n\n\n\n<p>Reading http:\/\/pypi.python.org\/simple\/cryptography\/<\/p>\n\n\n\n<p>Couldn't find index page for 'cryptography' (maybe misspelled?)<\/p>\n\n\n\n<p>Scanning index of all packages (this may take a while)<\/p>\n\n\n\n<p>Reading http:\/\/pypi.python.org\/simple\/<\/p>\n\n\n\n<p>No local packages or download links found for cryptography<\/p>\n\n\n\n<p>error: Could not find suitable distribution for Requirement.parse('cryptography')<\/p>\n\n\n\n<p>make: *** [install]\u00a0\u9519\u8bef\u00a01<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"453\" height=\"683\" src=\"https:\/\/www.izhuhn.cn\/wp-content\/uploads\/2023\/05\/image-7.png\" alt=\"\" class=\"wp-image-1321\" srcset=\"https:\/\/www.izhuhn.cn\/wp-content\/uploads\/2023\/05\/image-7.png 453w, https:\/\/www.izhuhn.cn\/wp-content\/uploads\/2023\/05\/image-7-199x300.png 199w\" sizes=\"(max-width: 453px) 100vw, 453px\" \/><\/figure>\n\n\n\n<p>python-setuptools.noarch<\/p>\n\n\n\n<p>yum install libffi python-devel libffi-devel<\/p>\n\n\n\n<p>yum&nbsp;install&nbsp;gcc&nbsp;glibc-devel&nbsp;zlib-devel&nbsp;rpm-build&nbsp;openssl-devel&nbsp;-y&nbsp;&nbsp;<\/p>\n\n\n\n<p>pip install --upgrade setuptools<\/p>\n\n\n\n<p>wget https:\/\/pypi.python.org\/packages\/ec\/b2\/faa78c1ab928d2b2c634c8b41ff1181f0abdd9adf9193211bd606ffa57e2\/cryptography-2.2.2.tar.gz<\/p>\n\n\n\n<p>cd cryptography-2.2.2<\/p>\n\n\n\n<p>[root@ansible1 cryptography-2.2.2]# python .\/setup.py install<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"686\" height=\"169\" src=\"https:\/\/www.izhuhn.cn\/wp-content\/uploads\/2023\/05\/image-6.png\" alt=\"\" class=\"wp-image-1320\" srcset=\"https:\/\/www.izhuhn.cn\/wp-content\/uploads\/2023\/05\/image-6.png 686w, https:\/\/www.izhuhn.cn\/wp-content\/uploads\/2023\/05\/image-6-300x74.png 300w\" sizes=\"(max-width: 686px) 100vw, 686px\" \/><\/figure>\n\n\n\n<p>pip install&nbsp;\u5b89\u88c5\u51fa\u9519<\/p>\n\n\n\n<p>[root@ansible1 Python-2.7.9]# pip install paramiko PyYAML Jinja2 httplib2 six<\/p>\n\n\n\n<p>DEPRECATION: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of pip will drop support for Python 2.6<\/p>\n\n\n\n<p>Collecting paramiko<\/p>\n\n\n\n<p>\/usr\/lib\/python2.6\/site-packages\/pip-9.0.3-py2.6.egg\/pip\/_vendor\/urllib3\/util\/ssl_.py:339: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https:\/\/urllib3.readthedocs.io\/en\/latest\/advanced-usage.html#ssl-warnings<\/p>\n\n\n\n<p>&nbsp;&nbsp;SNIMissingWarning<\/p>\n\n\n\n<p>\/usr\/lib\/python2.6\/site-packages\/pip-9.0.3-py2.6.egg\/pip\/_vendor\/urllib3\/util\/ssl_.py:137: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https:\/\/urllib3.readthedocs.io\/en\/latest\/advanced-usage.html#ssl-warnings<\/p>\n\n\n\n<p>&nbsp;&nbsp;InsecurePlatformWarning<\/p>\n\n\n\n<p>&nbsp;&nbsp;Using cached paramiko-2.4.1-py2.py3-none-any.whl<\/p>\n\n\n\n<p>Collecting PyYAML<\/p>\n\n\n\n<p>&nbsp;&nbsp;Using cached PyYAML-3.12.tar.gz<\/p>\n\n\n\n<p>Collecting Jinja2<\/p>\n\n\n\n<p>&nbsp;&nbsp;Using cached Jinja2-2.10-py2.py3-none-any.whl<\/p>\n\n\n\n<p>Collecting httplib2<\/p>\n\n\n\n<p>&nbsp;&nbsp;Using cached httplib2-0.11.3.tar.gz<\/p>\n\n\n\n<p>Requirement already satisfied: six in \/usr\/lib\/python2.6\/site-packages<\/p>\n\n\n\n<p>Collecting pyasn1&gt;=0.1.7 (from paramiko)<\/p>\n\n\n\n<p>&nbsp;&nbsp;Using cached pyasn1-0.4.2-py2.py3-none-any.whl<\/p>\n\n\n\n<p>Collecting bcrypt&gt;=3.1.3 (from paramiko)<\/p>\n\n\n\n<p>&nbsp;&nbsp;Using cached bcrypt-3.1.4-cp26-cp26mu-manylinux1_x86_64.whl<\/p>\n\n\n\n<p>Collecting cryptography&gt;=1.5 (from paramiko)<\/p>\n\n\n\n<p>&nbsp;&nbsp;Using cached cryptography-2.1.4.tar.gz<\/p>\n\n\n\n<p>Collecting pynacl&gt;=1.0.1 (from paramiko)<\/p>\n\n\n\n<p>&nbsp;&nbsp;Using cached PyNaCl-1.2.1.tar.gz<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;Complete output from command python setup.py egg_info:<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;Couldn't find index page for 'cffi' (maybe misspelled?)<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;No local packages or download links found for cffi&gt;=1.4.1<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;Traceback (most recent call last):<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File \"&lt;string&gt;\", line 1, in &lt;module&gt;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File \"\/tmp\/pip-build-hWz7Jg\/pynacl\/setup.py\", line 251, in &lt;module&gt;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"Programming Language :: Python :: 3.6\",<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File \"\/usr\/lib64\/python2.6\/distutils\/core.py\", line 113, in setup<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_setup_distribution = dist = klass(attrs)<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File \"\/usr\/lib\/python2.6\/site-packages\/setuptools\/dist.py\", line 221, in __init__<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.fetch_build_eggs(attrs.pop('setup_requires'))<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File \"\/usr\/lib\/python2.6\/site-packages\/setuptools\/dist.py\", line 245, in fetch_build_eggs<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parse_requirements(requires), installer=self.fetch_build_egg<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File \"\/usr\/lib\/python2.6\/site-packages\/pkg_resources.py\", line 538, in resolve<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dist = best[req.key] = env.best_match(req, self, installer)<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File \"\/usr\/lib\/python2.6\/site-packages\/pkg_resources.py\", line 780, in best_match<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return self.obtain(req, installer) # try and download\/install<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File \"\/usr\/lib\/python2.6\/site-packages\/pkg_resources.py\", line 792, in obtain<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return installer(requirement)<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File \"\/usr\/lib\/python2.6\/site-packages\/setuptools\/dist.py\", line 293, in fetch_build_egg<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return cmd.easy_install(req)<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File \"\/usr\/lib\/python2.6\/site-packages\/setuptools\/command\/easy_install.py\", line 466, in easy_install<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raise DistutilsError(msg)<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('cffi&gt;=1.4.1')<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;----------------------------------------<\/p>\n\n\n\n<p>Command \"python setup.py egg_info\" failed with error code 1 in \/tmp\/pip-build-hWz7Jg\/pynacl\/<\/p>\n\n\n\n<p>You are using pip version 9.0.3, however version 10.0.0 is available.<\/p>\n\n\n\n<p>You should consider upgrading via the 'pip install --upgrade pip' command.<\/p>\n\n\n\n<p>[root@ansible1 Python-2.7.9]#<\/p>\n\n\n\n<p>wet&nbsp;<a href=\"https:\/\/www.python.org\/ftp\/python\/2.7.9\/Python-2.7.9.tar.xz\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/www.python.org\/ftp\/python\/2.7.9\/Python-2.7.9.tar.xz<\/a><\/p>\n\n\n\n<p>tar -xf Python-2.7.9.tar.xz<\/p>\n\n\n\n<p>[root@ansible1 opt]# tar -xf Python-2.7.9.tar.xz<\/p>\n\n\n\n<p>tar (child): xz\uff1a\u65e0\u6cd5&nbsp;exec:&nbsp;\u6ca1\u6709\u90a3\u4e2a\u6587\u4ef6\u6216\u76ee\u5f55<\/p>\n\n\n\n<p>tar (child): Error is not recoverable: exiting now<\/p>\n\n\n\n<p>tar: Child returned status 2<\/p>\n\n\n\n<p>tar: Error is not recoverable: exiting now<\/p>\n\n\n\n<p>[root@ansible1 opt]# yum install xz* -y<\/p>\n\n\n\n<p>[root@ansible1 opt]# tar -xf Python-2.7.9.tar.xz<\/p>\n\n\n\n<p>[root@ansible1 opt]# cd Python-2.7.9<\/p>\n\n\n\n<p>[root@ansible1 Python-2.7.9]#<\/p>\n\n\n\n<p>[root@ansible1 Python-2.7.9]# .\/configure<\/p>\n\n\n\n<p>checking build system type... x86_64-unknown-linux-gnu<\/p>\n\n\n\n<p>checking host system type... x86_64-unknown-linux-gnu<\/p>\n\n\n\n<p>checking for --enable-universalsdk... no<\/p>\n\n\n\n<p>checking for --with-universal-archs... 32-bit<\/p>\n\n\n\n<p>checking MACHDEP... linux2<\/p>\n\n\n\n<p>checking EXTRAPLATDIR...<\/p>\n\n\n\n<p>checking for --without-gcc... no<\/p>\n\n\n\n<p>checking for gcc... no<\/p>\n\n\n\n<p>checking for cc... no<\/p>\n\n\n\n<p>checking for cl.exe... no<\/p>\n\n\n\n<p>configure: error: in `\/opt\/Python-2.7.9':<\/p>\n\n\n\n<p>configure: error: no acceptable C compiler found in $PATH<\/p>\n\n\n\n<p>See `config.log' for more details<\/p>\n\n\n\n<p>[root@ansible1 Python-2.7.9]# yum install gcc gcc-c++ -y<\/p>\n\n\n\n<p>[root@ansible1 Python-2.7.9]#<\/p>\n\n\n\n<p>[root@ansible1 Python-2.7.9]# .\/configure<\/p>\n\n\n\n<p>[root@ansible1 Python-2.7.9]# make<\/p>\n\n\n\n<p>[root@ansible1 Python-2.7.9]# make all<\/p>\n\n\n\n<p>[root@ansible1 Python-2.7.9]# make install<\/p>\n\n\n\n<p>[root@ansible1 Python-2.7.9]# make clean<\/p>\n\n\n\n<p>[root@ansible1 Python-2.7.9]# make distclean&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p>\u67e5\u770b\u7248\u672c\u4fe1\u606f<\/p>\n\n\n\n<p>#\/usr\/local\/bin\/python2.7&nbsp;-V&nbsp;<\/p>\n\n\n\n<p>.\u5efa\u7acb\u8f6f\u8fde\u63a5,\u4f7f\u7cfb\u7edf\u9ed8\u8ba4\u7684python\u6307\u5411Pytho2.7<\/p>\n\n\n\n<p>mv&nbsp;\/usr\/bin\/python&nbsp;\/usr\/bin\/python2.6.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p>ln&nbsp;-s&nbsp;\/usr\/local\/bin\/python2.7&nbsp;\/usr\/bin\/python&nbsp;&nbsp;<\/p>\n\n\n\n<p>&nbsp;8.\u89e3\u51b3\u7cfb\u7edf&nbsp;Python&nbsp;\u8f6f\u94fe\u63a5\u6307\u5411&nbsp;Python2.7&nbsp;\u7248\u672c\u540e\uff0c\u56e0\u4e3ayum\u662f\u4e0d\u517c\u5bb9&nbsp;Python 2.7\u7684\uff0c\u6240\u4ee5yum\u4e0d\u80fd\u6b63\u5e38\u5de5\u4f5c\uff0c\u6211\u4eec\u9700\u8981\u6307\u5b9a&nbsp;yum&nbsp;\u7684Python\u7248\u672c<\/p>\n\n\n\n<p>vi&nbsp;\/usr\/bin\/yum&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p>1.&nbsp;&nbsp;&nbsp;\u5c06\u6587\u4ef6\u5934\u90e8\u7684&nbsp;&nbsp;<\/p>\n\n\n\n<p>2.&nbsp;&nbsp;&nbsp;#!\/usr\/bin\/python&nbsp;&nbsp;<\/p>\n\n\n\n<p>3.&nbsp;&nbsp;&nbsp;\u6539\u6210&nbsp;&nbsp;<\/p>\n\n\n\n<p>4.\u00a0\u00a0\u00a0#!\/usr\/bin\/python2.6\u00a0\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"479\" height=\"118\" src=\"https:\/\/www.izhuhn.cn\/wp-content\/uploads\/2023\/05\/image-5.png\" alt=\"\" class=\"wp-image-1319\" srcset=\"https:\/\/www.izhuhn.cn\/wp-content\/uploads\/2023\/05\/image-5.png 479w, https:\/\/www.izhuhn.cn\/wp-content\/uploads\/2023\/05\/image-5-300x74.png 300w\" sizes=\"(max-width: 479px) 100vw, 479px\" \/><\/figure>\n\n\n\n<p><strong>[html]<\/strong>&nbsp;<a href=\"https:\/\/blog.csdn.net\/yongchaocsdn\/article\/details\/78732173\" target=\"_blank\"  rel=\"nofollow\" >view plain<\/a>&nbsp;<a href=\"https:\/\/blog.csdn.net\/yongchaocsdn\/article\/details\/78732173\" target=\"_blank\"  rel=\"nofollow\" >copy<\/a>&nbsp;<a href=\"https:\/\/blog.csdn.net\/yongchaocsdn\/article\/details\/78732173\" target=\"_blank\"  rel=\"nofollow\" >print<\/a><a href=\"https:\/\/blog.csdn.net\/yongchaocsdn\/article\/details\/78732173\" target=\"_blank\"  rel=\"nofollow\" >?<\/a><\/p>\n\n\n\n<p>1.&nbsp;&nbsp;&nbsp;\u4e0b\u8f7d\u5b89\u88c5\u811a\u672c&nbsp;&nbsp;<\/p>\n\n\n\n<p>2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p>3.&nbsp;&nbsp;&nbsp;#wget&nbsp;--no-check-certificate&nbsp;https:\/\/bootstrap.pypa.io\/get-pip.py&nbsp;&nbsp;<\/p>\n\n\n\n<p>4.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p>5.&nbsp;&nbsp;&nbsp;\u5b89\u88c5&nbsp;&nbsp;<\/p>\n\n\n\n<p>6.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p>7.&nbsp;&nbsp;&nbsp;#python&nbsp;get-pip.py&nbsp;&nbsp;<\/p>\n\n\n\n<p>8.&nbsp;&nbsp;&nbsp;copy&nbsp;pip\u811a\u672c\u5230bin(\u53ef\u4ee5\u5148\u68c0\u67e5\u662f\u5426\u5df2\u7ecf\u5b58\u5728pip\u547d\u4ee4&nbsp;&nbsp;<\/p>\n\n\n\n<p>9.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p>10.&nbsp;#cp&nbsp;\/usr\/local\/bin\/pip2.7&nbsp;\/usr\/bin\/pip&nbsp;&nbsp;<\/p>\n\n\n\n<p>11.&nbsp;#pip&nbsp;install&nbsp;ansible&nbsp;--upgrade&nbsp;&nbsp;<\/p>\n\n\n\n<p>[root@ansible1 Python-2.7.9]# python .\/get-pip.py<\/p>\n\n\n\n<p>Traceback (most recent call last):<\/p>\n\n\n\n<p>&nbsp;&nbsp;File \".\/get-pip.py\", line 20636, in &lt;module&gt;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;main()<\/p>\n\n\n\n<p>&nbsp;&nbsp;File \".\/get-pip.py\", line 197, in main<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;bootstrap(tmpdir=tmpdir)<\/p>\n\n\n\n<p>&nbsp;&nbsp;File \".\/get-pip.py\", line 82, in bootstrap<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;import pip._internal<\/p>\n\n\n\n<p>zipimport.ZipImportError: can't decompress data; zlib not available<\/p>\n\n\n\n<p>[root@ansible1 Python-2.7.9]# yum reinstall zlib*<\/p>\n\n\n\n<p>1\u3001\u5b89\u88c5\u4f9d\u8d56zlib\u3001zlib-devel<br>2\u3001\u91cd\u65b0\u7f16\u8bd1\u5b89\u88c5Python<\/p>\n\n\n\n<p>1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.\/configure&nbsp;<\/p>\n\n\n\n<p>2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u7f16\u8f91Modules\/Setup\u6587\u4ef6&nbsp;<\/p>\n\n\n\n<p>3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u627e\u5230\u4e0b\u9762\u8fd9\u53e5\uff0c\u53bb\u6389\u6ce8\u91ca&nbsp;<\/p>\n\n\n\n<p>4.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#zlib&nbsp;zlibmodule.c&nbsp;-I$(prefix)\/include&nbsp;-L$(exec_prefix)\/lib&nbsp;-lz&nbsp;<\/p>\n\n\n\n<p>5.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u91cd\u65b0\u7f16\u8bd1\u5b89\u88c5\uff1amake&nbsp;&amp;&nbsp;make&nbsp;install<\/p>\n\n\n\n<p>[root@ansible1 Python-2.7.9]# python get-pip.py<\/p>\n\n\n\n<p>Collecting pip<\/p>\n\n\n\n<p>&nbsp;&nbsp;Downloading pip-10.0.0-py2.py3-none-any.whl (1.3MB)<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;100% |\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 1.3MB 496kB\/s<\/p>\n\n\n\n<p>Collecting setuptools<\/p>\n\n\n\n<p>&nbsp;&nbsp;Downloading setuptools-39.0.1-py2.py3-none-any.whl (569kB)<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;100% |\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 573kB 538kB\/s<\/p>\n\n\n\n<p>Collecting wheel<\/p>\n\n\n\n<p>&nbsp;&nbsp;Downloading wheel-0.31.0-py2.py3-none-any.whl (41kB)<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;100% |\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 51kB 428kB\/s<\/p>\n\n\n\n<p>Installing collected packages: pip, setuptools, wheel<\/p>\n\n\n\n<p>Successfully installed pip-10.0.0 setuptools-39.0.1 wheel-0.31.0<\/p>\n\n\n\n<p>[root@ansible1 Python-2.7.9]#<\/p>\n\n\n\n<p>[root@ansible1 Python-2.7.9]# cp \/usr\/bin\/pip \/usr\/bin\/pip_old<\/p>\n\n\n\n<p>[root@ansible1 Python-2.7.9]# cp \/usr\/local\/bin\/pip2.7 \/usr\/bin\/pip<\/p>\n\n\n\n<p>cp\uff1a\u662f\u5426\u8986\u76d6\"\/usr\/bin\/pip\"\uff1f&nbsp;y<\/p>\n\n\n\n<p>[root@ansible1 Python-2.7.9]#<\/p>\n\n\n\n<p>\uff082\uff09SSL\u6ca1\u6709\u5b89\u88c5\uff0c\u62a5\u9519\u5982\u4e0b\uff1a<\/p>\n\n\n\n<p>pip is configured with locations that require TLS\/SSL, however the ssl module in Python is not available.<br>Collecting pip<br>&nbsp; Could not fetch URL https:\/\/pypi.python.org\/simple\/pip\/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping<br>&nbsp; Could not find a version that satisfies the requirement pip (from versions: )<br>No matching distribution found for pip<\/p>\n\n\n\n<p>\u89e3\u51b3\u65b9\u6848\u5982\u4e0b\uff1a<\/p>\n\n\n\n<p>[root@localhost ~]# python2.7.5<br>Python 2.7.5 (default, Jun 3 2013, 11:08:43)&nbsp;<br>[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2<br>Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.<br>&gt;&gt;&gt; import ssl<br>Traceback (most recent call last):<br>File \"&lt;stdin&gt;\", line 1, in &lt;module&gt;<br>File \"\/usr\/local\/python27\/lib\/python2.7\/ssl.py\", line 60, in &lt;module&gt;<br>import _ssl # if we can't import it, let the error propagate<br>ImportError: No module named _ssl<br>&gt;&gt;&gt;<br><br>2.&nbsp;\u67e5\u770bopenssl\u5b89\u88c5\u5305\uff0c\u53d1\u73b0\u7f3a\u5c11openssl-devel\u5305<br>[root@localhost ~]# rpm -aq|grep openssl<br>openssl-0.9.8e-20.el5<br>openssl-0.9.8e-20.el5<br>[root@localhost ~]#<br><br>3. yum\u5b89\u88c5openssl-devel<br>[root@localhost ~]# yum install openssl-devel -y<br>#\u67e5\u770b\u5b89\u88c5\u7ed3\u679c<br>[root@localhost ~]# rpm -aq|grep openssl<br>openssl-0.9.8e-26.el5_9.1<br>openssl-0.9.8e-26.el5_9.1<br>openssl-devel-0.9.8e-26.el5_9.1<br>openssl-devel-0.9.8e-26.el5_9.1<br><br>4.&nbsp;\u91cd\u65b0\u7f16\u8bd1python<br>#\u4fee\u6539Setup\u6587\u4ef6<br>vi \/usr\/software\/Python-2.7.5\/Modules\/Setup<br>#\u4fee\u6539\u7ed3\u679c\u5982\u4e0b\uff1a<br># Socket module helper for socket(2)<br>_socket socketmodule.c timemodule.c<br><br># Socket module helper for SSL support; you must comment out the other<br># socket line above, and possibly edit the SSL variable:<br>#SSL=\/usr\/local\/ssl<br>_ssl _ssl.c \\<br>-DUSE_SSL -I$(SSL)\/include -I$(SSL)\/include\/openssl \\<br>-L$(SSL)\/lib -lssl -lcrypto<br><br>5.&nbsp;\u91cd\u65b0\u7f16\u8bd1<br>make<br>make install<br><br>6.&nbsp;\u6d4b\u8bd5\uff0c\u5df2\u53ef\u6b63\u5e38\u4f7f\u7528\u3002<br>[root@localhost ~]# python2.7.5<br>Python 2.7.5 (default, Jun 3 2013, 14:56:13)&nbsp;<br>[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2<br>Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.<br>&gt;&gt;&gt; import ssl<br>&gt;&gt;&gt;<\/p>\n\n\n\n<p>ssh-copy-id 10.0.0.1<\/p>\n\n\n\n<p>echo \u201c10.0.0.1\u201d &gt;&gt; \/etc\/ansible\/hosts<\/p>\n\n\n\n<p>ansible all -m ping<\/p>\n\n\n\n<p>ansible 2&nbsp;\u4ee5\u4e0a\u7248\u672csu<\/p>\n\n\n\n<p>[root@ansible1 ~]# ansible test -b --become-method=su&nbsp;&nbsp;--ask-become-pass -m shell&nbsp;&nbsp;-a \"id\"<\/p>\n\n\n\n<p>SU password:<\/p>\n\n\n\n<p>zhn@127.0.0.1 | SUCCESS | rc=0 &gt;&gt;<\/p>\n\n\n\n<p>uid=0(root) gid=0(root)&nbsp;\u7ec4=0(root)&nbsp;\u73af\u5883=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023<\/p>\n\n\n\n<p>\u5229\u7528ssh\u8df3\u677f\u673a\u8bbf\u95ee\u76ee\u6807\u7f51\u6bb5<\/p>\n\n\n\n<p>[root@ansible1 ~]# cat \/root\/.ssh\/config<\/p>\n\n\n\n<p>Host 130.51.11.*<\/p>\n\n\n\n<p>IdentityFile=\/root\/.ssh\/lan<\/p>\n\n\n\n<p>ProxyCommand ssh toptea@132.120.2.5 -W %h:%p<\/p>\n\n\n\n<p>ServerAliveInterval 30<\/p>\n\n\n\n<p>ControlMaster no<\/p>\n\n\n\n<p>ControlPath \/tmp\/%r@%h-%p.ssh<\/p>\n\n\n\n<p>ControlPersist 600<\/p>\n\n\n\n<p>[root@ansible1 ~]#<\/p>\n\n\n\n<p>[root@ansible1 zhn]# cat \/etc\/ansible\/hosts<\/p>\n\n\n\n<p>unionmon@132.98.23.56&nbsp;&nbsp;&nbsp;ansible_su_pass=Dc_ds9856<\/p>\n\n\n\n<p>[root@ansible1 zhn]# ansible unionmon@132.98.23.56 -b --become-method=su&nbsp;&nbsp;-m shell -a 'id'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p>unionmon@132.98.23.56 | SUCCESS | rc=0 &gt;&gt;<\/p>\n\n\n\n<p>uid=0(root) gid=0(root)&nbsp;\u7ec4=0(root)&nbsp;&nbsp;<\/p>\n\n\n\n<p>playbook\u4f7f\u7528<\/p>\n\n\n\n<p>[root@ansible ansible]# cat pyhton.yaml<\/p>\n\n\n\n<p>---<\/p>\n\n\n\n<p>- name: install python27<\/p>\n\n\n\n<p>&nbsp;&nbsp;hosts: 130.51.1.113<\/p>\n\n\n\n<p>&nbsp;&nbsp;remote_user: toptea<\/p>\n\n\n\n<p>&nbsp;&nbsp;gather_facts: false<\/p>\n\n\n\n<p>&nbsp;&nbsp;become: yes<\/p>\n\n\n\n<p>&nbsp;&nbsp;become_method: su<\/p>\n\n\n\n<p>&nbsp;&nbsp;become_user: root<\/p>\n\n\n\n<p>&nbsp;&nbsp;tasks:<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- name: tar python.tgz<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raw: cd \/tmp;tar -zxvf Python-2.7.14.tgz<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- name: install Python27<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raw: cd \/tmp\/Python-2.7.14;.\/configure ; make&amp;&amp; make install<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- name: create softlink to python<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raw: mv \/usr\/bin\/python \/usr\/bin\/pythonbak-1 ;ln -s \/usr\/local\/bin\/python2.7 \/usr\/bin\/python<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- name: yum env<\/p>\n\n\n\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0raw: sed -ibak '1d' \/usr\/bin\/yum ; sed -i '1i\\#!\/usr\/bin\/python2.4' \/usr\/bin\/yum<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"553\" height=\"410\" src=\"https:\/\/www.izhuhn.cn\/wp-content\/uploads\/2023\/05\/image-4.png\" alt=\"\" class=\"wp-image-1318\" srcset=\"https:\/\/www.izhuhn.cn\/wp-content\/uploads\/2023\/05\/image-4.png 553w, https:\/\/www.izhuhn.cn\/wp-content\/uploads\/2023\/05\/image-4-300x222.png 300w\" sizes=\"(max-width: 553px) 100vw, 553px\" \/><\/figure>\n\n\n\n<p>commad\u6a21\u5757\u8ddfshell\u6a21\u5757\u533a\u522b<\/p>\n\n\n\n<p>shell ssh\u8fdc\u7a0b\u4f1a\u5f00\u4e00\u4e2a\u7ec8\u7aefbash\u518d\u6267\u884c\u547d\u4ee4<\/p>\n\n\n\n<p>command&nbsp;\u6a21\u5757\u4e0d\u4f1a\u518dbash\u4e0b\u6267\u884c\u4e0d \u5728sshd\u4e0b\u6267\u884c<\/p>\n\n\n\n<p>bash\u529f\u80fd\u4e0d\u80fd\u7528<\/p>\n\n\n\n<p>\u7ba1\u9053\u8f93\u5165bash\u529f\u80fd<\/p>\n\n\n\n<p>ansible<\/p>\n\n\n\n<p>ansible hosts&nbsp;\u2013m yum&nbsp;\u2013a&nbsp;\u2018name=tree,ksh state=installd\u2019<\/p>\n\n\n\n<p>ansible hosts&nbsp;\u2013m yum&nbsp;\u2013a&nbsp;\u2018name=tree,ksh state=removed\u2019<\/p>\n\n\n\n<p>name\u5305\u540d&nbsp;state&nbsp;\u88c5\u5305\u8fd8\u662f\u5378\u5305<\/p>\n\n\n\n<p>ansible hosts&nbsp;\u2013m systemed&nbsp;\u2013a&nbsp;\u2018name=chronyd state=stopped\u2019<\/p>\n\n\n\n<p>name=&nbsp;&nbsp;state=<\/p>\n\n\n\n<p>ansible&nbsp;\u2013doc modulename<\/p>\n\n\n\n<p>\/usr\/lib\/python2.7\/site-packages\/ansible<\/p>\n\n\n\n<p>play-book(yaml\u6587\u4ef6)<\/p>\n\n\n\n<p>\u5728playbook\u6587\u4ef6\u4e2d\u63d0\u524d\u5b9a\u4e49\u4e00\u7cfb\u5217\u7684\u4efb\u52a1<\/p>\n\n\n\n<p>playbook\u7531\u4e00\u4e2a\u6216\u591a\u4e2aplay\u7ec4\u6210<\/p>\n\n\n\n<p>play\u4e2d\u7684hosts,variables.roles,tasks\u7b49\u5bf9\u8c61\u90fd\u4f7f\u7528\u952e\u503c\u8868\u793a(\u5192\u53f7\u5206\u5272)<\/p>\n\n\n\n<p>Targe:\u5b9a\u4e49\u8981\u6267\u884cplaybook\u8fd0\u884c\u65f6\u9700\u8981\u7684\u53d8\u91cf<\/p>\n\n\n\n<p>Tasks:\u5b9a\u4e49\u8981\u5728\u8fdc\u7a0b\u4e3b\u673a\u4e0a\u6267\u884c\u7684\u4efb\u52a1\u5217\u8868<\/p>\n\n\n\n<p>Handler:\u5b9a\u4e49task\u4efb\u52a1\u5b8c\u6210\u540e\u9700\u8981\u8c03\u7528\u7684\u4efb\u52a1<\/p>\n\n\n\n<p>Playbook\u8f93\u51fa\u7ed3\u679c\u4f7f\u7528Json\u683c\u5f0f\u8f93\u51fa\u3002<\/p>\n\n\n\n<p>yaml\u683c\u5f0f<\/p>\n\n\n\n<p>\u7a7a\u683c\u8868\u793a\u7ed3\u6784<\/p>\n\n\n\n<p>\u4f7f\u7528-\u8868\u793a\u6570\u7ec4(\u6a2a\u7ebf\u540e\u9762\u6709\u4e00\u4e2a\u7a7a\u683c)<\/p>\n\n\n\n<p>\u4f7f\u7528:\u8868\u793a\u952e\u503c(\u5192\u53f7\u540e\u9762\u6709\u4e00\u4e2a\u7a7a\u683c)<\/p>\n\n\n\n<p>\u4e00\u822c\u6bcf\u4e2a\u7f29\u8fdb\u7ea7\u522b\u75312\u4e2a\u53ca\u4ee5\u4e0a\u7a7a\u683c\u7ec4\u6210(\u4e0d\u8981\u4f7f\u7528tab)<\/p>\n\n\n\n<p>\u7a7a\u683c\u7684\u7f29\u8fdb\u7ea7\u522b\u5fc5\u987b\u5bf9\u9f50<\/p>\n\n\n\n<p>yaml\u6587\u4ef6 \u5f00\u59cb\u884c\u90fd\u5e94\u8be5\u662f---\u4e09\u6761\u6a2a\u7ebf(\u8868\u793a\u6587\u4ef6\u5f00\u59cb,\u4e0d\u662f\u5fc5\u987b\u7684.\u4f46\u662f\u7ea6\u5b9a\u4fd7\u79f0\u90fd\u662f\u8fd9\u6837)<\/p>\n\n\n\n<p>#\u8868\u793a\u6ce8\u91ca<\/p>\n\n\n\n<p>\u952e\u503c\uff1a<\/p>\n\n\n\n<p>\u8bd7\u4eba:&nbsp;\u674e\u767d<\/p>\n\n\n\n<p>\u6570\u7ec4\uff1a<\/p>\n\n\n\n<p>\u8bd7\u4eba:<\/p>\n\n\n\n<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u674e\u767d<\/p>\n\n\n\n<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u675c\u752b<\/p>\n\n\n\n<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u767d\u5c45\u6613<\/p>\n\n\n\n<p>\u8bd7\u4eba:<\/p>\n\n\n\n<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A<\/p>\n\n\n\n<p>\u59d3\u540d:&nbsp;\u674e\u767d<\/p>\n\n\n\n<p>\u5e74\u4ee3:&nbsp;\u5510\u4ee3<\/p>\n\n\n\n<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B<\/p>\n\n\n\n<p>\u59d3\u540d: value<\/p>\n\n\n\n<p>\u5e74\u4ee3: value<\/p>\n\n\n\n<p>\u5f00\u653e\u5f0f\u6570\u636e\u4ea4\u6362\u683c\u5f0f(\u6587\u672c)yaml<\/p>\n\n\n\n<p>\u6570\u636e<\/p>\n\n\n\n<p>\u7a0b\u5e8f\u652f\u6301<\/p>\n\n\n\n<p>json\u683c\u5f0f<\/p>\n\n\n\n<p>\u662f\u7eaf\u6587\u672c\u6587\u4ef6<\/p>\n\n\n\n<p>\u5355\u5f15\u53f7\u2019\u2019\u5b57\u7b26<\/p>\n\n\n\n<p>[]\u662f\u8868\u793a\u6570\u7ec4&nbsp;[\u2018test\u2019,\u2019hello\u2019,\u2019world\u2019]<\/p>\n\n\n\n<p>{}\u662f\u952e\u503c,\u4f7f\u7528:\u5206\u9694&nbsp;{\u2018key\u2019:\u2019value\u2019,\u2019name\u2019:\u2019tom\u2019}<\/p>\n\n\n\n<p>()\u5bf9\u8c61\u5206\u7ec4<\/p>\n\n\n\n<p>,.\u5206\u9694\u7b26\uff0c\u6ca1\u6709\u987a\u5e8f<\/p>\n\n\n\n<p>json\u793a\u4f8b<\/p>\n\n\n\n<p>{&nbsp;\u2018\u8bd7\u4eba\u2018:<\/p>\n\n\n\n<p>&nbsp;&nbsp;[\u2018\u674e\u767d\u2019,\u2019\u675c\u752b\u2019,\u2019\u767d\u5c45\u6613\u2019]<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>{&nbsp;\u2018\u8bd7\u4eba\u2018:<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;[{\u2018\u674e\u767d\u2019:\u2019\u8bd7\u4ed9\u2019,\u2019\u5e74\u4ee3\u2019,\u2019\u5510\u2019},<\/p>\n\n\n\n<p>{\u2018\u675c\u752b\u2019:\u2019\u8bd7\u5723\u2019,\u2019\u5e74\u4ee3\u2019:\u2019\u5510\u2019},<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;{\u2018\u767d\u5c45\u6613\u2018:\u2019\u8bd7\u9b54\u2019,\u201d\u5e74\u4ee3\u201d:\u2019\u5510\u2019}<\/p>\n\n\n\n<p>]<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>#---<\/p>\n\n\n\n<p>&nbsp;&nbsp;-hosts: node<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;remote_user: root<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;tasks:<\/p>\n\n\n\n<p>-name: add user<\/p>\n\n\n\n<p>&nbsp;user: hello1<\/p>\n\n\n\n<p>&nbsp;uid: 1040<\/p>\n\n\n\n<p>&nbsp;group: root<\/p>\n\n\n\n<p>-name: chage pass<\/p>\n\n\n\n<p>&nbsp;shell: echo\u201d123\u201d| passwd \u2013stdin hello1<\/p>\n\n\n\n<p>-shell: chage \u2013d ,0 hello1<\/p>\n\n\n\n<p>python-jinja2<\/p>\n\n\n\n<p>#---<\/p>\n\n\n\n<p>&nbsp;&nbsp;-hosts: node<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;remote_user: root<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;vars:<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;user: hello4<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;group: root<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;uid: 1044<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;tasks:<\/p>\n\n\n\n<p>-name: add user<\/p>\n\n\n\n<p>&nbsp;user:<\/p>\n\n\n\n<p>name: \u201c{{user.name}}\u201d<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;uid: \u201c{{user.uid}}\u201d<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;group: \u201c{{user.group}}\u201d<\/p>\n\n\n\n<p>-name: chage pass<\/p>\n\n\n\n<p>&nbsp;shell: echo\u201d123\u201d| passwd \u2013stdin \u201c{{user.name}}\u201d<\/p>\n\n\n\n<p>-shell: chage \u2013d ,0 \u201c{{user.name}}\u201d<\/p>\n\n\n\n<p>ansible-playbook \u2013e\u53c2\u6570\u53ef\u4ee5\u4f20\u9012\u4e0d\u7528\u7684\u53d8\u91cf<\/p>\n\n\n\n<p>\u2018{\u201cuser\u201c:{\u201cname\u201d:\u201duser\u201d,\u201dgroup\u201d:\u201droot\u201d}}\u2018<\/p>\n\n\n\n<p>\u91cd\u590d\u5229\u7528playbook\u6587\u4ef6\u7684\u53e6\u4e00\u79cd\u65b9\u5f0f<\/p>\n\n\n\n<p>vi var,user<\/p>\n\n\n\n<p>user:<\/p>\n\n\n\n<p>&nbsp;&nbsp;name: \u201cuser3\u201d<\/p>\n\n\n\n<p>group: \u201croot\u201d<\/p>\n\n\n\n<p>ansible-playbook test.yaml \u2013e&nbsp;\u2018@var.user\u2018<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4f5c\u8005\uff1aScanz \u66f4\u65b0\u7248\u672c:V1(20190118\u521d\u7248\uff0c\u5f85\u66f4\u65b0\u683c\u5f0f) &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.izhuhn.cn\/index.php\/wp-json\/wp\/v2\/posts\/1317"}],"collection":[{"href":"https:\/\/www.izhuhn.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.izhuhn.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.izhuhn.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.izhuhn.cn\/index.php\/wp-json\/wp\/v2\/comments?post=1317"}],"version-history":[{"count":1,"href":"https:\/\/www.izhuhn.cn\/index.php\/wp-json\/wp\/v2\/posts\/1317\/revisions"}],"predecessor-version":[{"id":1322,"href":"https:\/\/www.izhuhn.cn\/index.php\/wp-json\/wp\/v2\/posts\/1317\/revisions\/1322"}],"wp:attachment":[{"href":"https:\/\/www.izhuhn.cn\/index.php\/wp-json\/wp\/v2\/media?parent=1317"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.izhuhn.cn\/index.php\/wp-json\/wp\/v2\/categories?post=1317"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.izhuhn.cn\/index.php\/wp-json\/wp\/v2\/tags?post=1317"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}