略,可參考《001.Pip簡介及使用》。python
提示:建議將PIP升級到最新:pip install --upgrade pip。linux
1 [root@manage ~]# yum -y install gcc glibc-devel zlib-devel rpm-build openssl-devel
1 [root@manage ~]# pip install ansible
1 [root@manage ~]# ansible --version #查看版本
1 [root@manage ~]# sudo yum install -y epel-release 2 [root@manage ~]# sudo sed -e 's!^mirrorlist=!#mirrorlist=!g' \ 3 -e 's!^#baseurl=!baseurl=!g' \ 4 -e 's!//download\.fedoraproject\.org/pub!//mirrors.ustc.edu.cn!g' \ 5 -e 's!http://mirrors\.ustc!https://mirrors.ustc!g' \ 6 -i /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel-testing.repo
1 [root@manage ~]# yum -y install gcc glibc-devel zlib-devel rpm-build openssl-devel
1 [root@manage ~]# yum -y install ansible 2 [root@manage ~]# ansible --version #查看版本
1 # rpm -ql ansible
配置文件目錄:/etc/ansibleshell
主要功能:Inventory主機信息配置、Ansible工具功能配置,全部Ansible配置均存放在該目錄下;安全
執行文件目錄:/usr/binbash
主要功能:Ansible系列命令默認存放目錄,Ansible全部可執行文件均存放在該目錄下。併發
Lib庫文件目錄:/usr/lib/pythonX.X/site-packages/ansiblessh
主要功能:系統當前默認的Python路徑。工具
Help幫助文檔目錄:/usr/share/doc/ansble-X.X.X/ui
主要功能:Ansible全部相關幫助文件存放目錄。url
Man文檔目錄:/usr/share/man/man1/
Ansible配置文件ansible.cfg默認位於/etc/ansible/目錄下。
提示:ansible.cfg配置文件能夠位於多個目錄下,Ansible讀取配置文件的順序爲:當前命令執行目錄——>用戶家目錄下的.ansible.cfg——>/etc/ansible/ansible.cfg.其ansible.cfg配置的全部內容都可在命令行經過參數的形式傳遞或定義在Playbook中。
1 #…… 2 #inventory = /etc/ansible/hosts #定義Inventory 3 #library = /usr/share/my_modules/ #自定義lib庫存放目錄 4 #module_utils = /usr/share/my_module_utils/ 5 #remote_tmp = ~/.ansible/tmp #臨時文件遠程主機存放目錄 6 #local_tmp = ~/.ansible/tmp #臨時文件本地存放目錄 7 #plugin_filters_cfg = /etc/ansible/plugin_filters.yml 8 #forks = 5 #默認開啓的併發數 9 #poll_interval = 15 #默認輪詢時間間隔 10 #sudo_user = root #默認sudo用戶 11 #ask_sudo_pass = True #是否須要sudo密碼 12 #ask_pass = True #是否須要密碼 13 #transport = smart #通訊機制.默認值爲’smart’
提示:若是本地系統支持 ControlPersist技術的話,將會使用(基於OpenSSH)‘ssh’,若是不支持將使用‘paramiko’.其餘傳輸選項包括‘local’, ‘chroot’,’jail’等。
1 #remote_port = 22 #遠程SSH端口,默認是22 2 #module_lang = C #模塊和系統之間通訊的計算機語言,默認是C語言 3 #module_set_locale = False 4 #gathering = implicit 5 #控制默認facts收集(遠程系統變量),默認值爲’implicit’, 每一次play,facts都會被收集 6 #gather_subset = all #定義獲取fact的子集,默認所有 7 # gather_timeout = 10 8 #roles_path = /etc/ansible/roles #默認下載的Roles存放的目錄 9 #host_key_checking = False #首次鏈接是否須要檢查key認證,建議設置爲False 10 #stdout_callback = skippy 11 #callback_whitelist = timer, mail 12 #task_includes_static = False 13 #handler_includes_static = False 14 #error_on_missing_handler = True 15 #sudo_exe = sudo 16 #若是在其餘遠程主機上使用另外一種方式執sudu操做.可使用該參數進行更換 17 #sudo_flags = -H -S -n #傳遞sudo以外的參數 18 #timeout = 10 #默認超時時間 19 #remote_user = root 20 #使用/usr/bin/ansible-playbook連接的默認用戶名,若是不指定,會使用當前登陸的用戶名 21 #log_path = /var/log/ansible.log #執行日誌存放目錄 22 #module_name = command #默認執行模塊 23 #executable = /bin/sh #用於執行腳本得解釋器 24 #在sudo環境下產生一個shell交互接口. 用戶只在/bin/bash的或者sudo限制的一些場景中須要修改 25 #hash_behaviour = replace #特定的優先級覆蓋變量 26 #private_role_vars = yes
提示:默認狀況下,角色中的變量將在全局變量範圍中可見。爲了防止這種狀況,能夠啓用以上選項,只有tasks的任務和handlers得任務能夠看到角色變量。
1 #jinja2_extensions = jinja2.ext.do,jinja2.ext.i18n #容許開啓Jinja2拓展模塊 2 #private_key_file = /path/to/file #私鑰文件存儲位置 3 #vault_password_file = /path/to/vault_password_file #指定vault密碼文件路徑 4 #ansible_managed = Ansible managed: {file} modified on %Y-%m-%d %H:%M:%S by {uid} on {host} 5 #定義一個Jinja2變量,能夠插入到Ansible配置模版系統生成的文件中 6 #ansible_managed = Ansible managed 7 #display_skipped_hosts = True #顯示任何跳過任務的狀態,默認是顯示 8 #display_args_to_stdout = False 9 #error_on_undefined_vars = False 10 #若是所引用的變量名稱錯誤的話, 是否讓ansible在執行步驟上失敗 11 #system_warnings = True 12 #容許禁用系統運行ansible相關的潛在問題警告 13 #deprecation_warnings = True 14 #容許在ansible-playbook輸出結果中禁用「不建議使用」警告 15 # setting or adding warn=yes or warn=no to the end of the command line 16 # command_warnings = False 17 #當shell和命令行模塊被默認模塊簡化的時,Ansible將默認發出警告 18 #nocolor = 1 #輸出帶上顏色區別, 開啓/關閉:0/1 19 #action_plugins = /usr/share/ansible/plugins/action #action插件存放目錄 20 #cache_plugins = /usr/share/ansible/plugins/cache #cache插件存放目錄 21 #callback_plugins = /usr/share/ansible/plugins/callback #callback插件存放目錄 22 #connection_plugins = /usr/share/ansible/plugins/connection #connection插件存放目錄 23 #lookup_plugins = /usr/share/ansible/plugins/lookup #lookup插件存放目錄 24 #inventory_plugins = /usr/share/ansible/plugins/inventory #Inventory插件存放目錄 25 #vars_plugins = /usr/share/ansible/plugins/vars #vars插件存放目錄 26 #filter_plugins = /usr/share/ansible/plugins/filter #filter插件存放目錄 27 #test_plugins = /usr/share/ansible/plugins/test 28 [privilege_escalation] 29 #become=True #是否sudo 30 #become_metrod=sudo #sudo方式 31 #become_user=root #sudo後變爲root用戶 32 #become_ask_pass=False #sudo後是否驗證密碼
提示:出於安全考慮,可能須要以普通用戶權限並賦予sudo來執行,以上部分配置主要針對sudo用戶提權配置。
1 [paramiko_connection] 2 #record_host_keys=False #不記錄新主機的key以提高效率 3 #pty=False #禁用sudo功能 4 [ssh_connection] 5 #scp_if_ssh = True #若鏈接類型是ssh,使ansible使用scp 6 #pipelining=False #管道加速,需配合requiretty使用方可生效
提示:Ansible默認使用SSH協議鏈接對端主機,SSH pipelining 是一個加速Ansible執行速度的簡單方法。ssh pipelining 默認關閉,之因此默認關閉是爲了兼容不一樣的sudo配置,主要是requiretty選項。若不使用sudo,建議開啓。打開此選項能夠減小ansible執行沒有傳輸時ssh在被控機器上執行任務的鏈接數。不過,若使用sudo,必須關閉requiretty選項。
1 [accelerate] 2 #accelerate_port=5099 #加速鏈接端口 3 #accelerate_timeout=30 #命令執行超時時間,單位爲秒 4 #accelerate_connect_timeout=5.0 #鏈接超時時間,單位爲秒 5 #accelerate_daemon_timeout=30 #上一個活動鏈接的時候,單位爲分鐘 6 #accelerate_multi_key=yes
提示:以上部分爲提高Ansible鏈接速度配置,多數保持默認便可。
1 [selinux] 2 #libvirt_lxc_noseclabel=yes 3 #將此設置爲yes,以容許libvirt_lxc鏈接在沒有SELinux的狀況下工做。 4 [colors] 5 #highlight = white 6 #verbose = blue 7 #warn = bright purple 8 #error = red 9 #debug = dark gray 10 #deprecate = purple 11 #skip = cyan 12 #unreachable = red 13 #ok = green 14 #changed = yellow 15 #diff_add = green 16 #diff_remove = red 17 #diff_lines = cyan
參考文檔:https://www.jianshu.com/p/443f612c3d5c