yum安裝nginx
yum install epel-release -y
yum install ansible –yshellansible配置文件vim
參數 | 註釋 |
---|---|
inventory = /etc/ansible/hosts1 | 這個參數表示資源清單inventory文件的位置,資源清單就是一些ansible須要鏈接管理的主 機列表。 |
library = /usr/share/ansible1 | ansible的操做動做,不管是本地或遠程,都使用一小段代碼來執行,這小段代碼稱爲模塊,這個library參數就是指向存放ansible模塊的目錄。 |
forks = 51 | 設置默認狀況下ansible最多能有多少個進程同時工做, 從ansible 1.3開始,fork數量默認自動設置爲主機數量或者潛在的主機數量,默認設置最多5個進程並行處理。具體須要設置多少個,能夠根據控制主機的性能和被管節點的數量來肯定,多是 50或100。默認值5是很是保守的值。 |
sudo_user = root1 | 這是設置默認執行命令的用戶,也能夠在playbook中從新設置這個參數。 |
remote_port = 221 | 這是指定鏈接被管節點的管理端口,默認是22。除非設置了特殊的SSH端口,否則這個參數通常是不須要修改的。 |
host_key_checking = False1 | 這是設置是否檢查SSH主機的密鑰。能夠設置爲True或False,關閉後第一次鏈接沒有提示配置實例 |
timeout = 601 | 這是設置SSH鏈接的超時間隔,單位是秒。 |
log_path = /var/log/ansible.log1 | 統默認是不記錄日誌的,若是想把ansible系統的輸出記錄到日誌文件中,須要設置log_path來指定一個存儲ansible日誌的文件。 |
ansible支持多個目錄方式,只要用冒號「 : 」隔開就能夠,同時也會檢查當前執行playbook位置下的./library目錄。centos
ansible配置公私鑰數組
一、首先生成祕鑰
##執行下條指令後一路回車便可!
[root@CentOS7-master ~]# sudo ssh-keygen -t rsa12安全二、而後向主機分發祕鑰:
##全部添加到主機清單中的IP地址或者主機名,所有都要用下條指令執行一遍。
[root@CentOS7-master ~]# sudo ssh-copy-id root@主機名或IP地址12bash三、若是出現如下狀況:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.123.45
-bash: ssh-copy-id: command not found服務器
#請嘗試: yum -y install openssh-clientsansible
ansible主機清單設置 ,編輯/etc/ansible/hosts,在ansible主機添加其餘全部主機的hostname網絡
vim /etc/hosts
192.168.123.45 server-1
192.168.123.46 server-2
192.168.123.47 server-3
192.168.123.48 server-4
192.168.123.49 server-5
192.168.123.50 server-6架構若是被控端是pem文件就將pem文件傳到ansible-server端指定路徑
vim /etc/ansible/hosts [zhandian1] server-1 ansible_ssh_user=centos ansible_ssh_private_key_file=/home/centos/aws_secret/nginx.pem server-2 ansible_ssh_user=centos ansible_ssh_private_key_file=/home/centos/aws_secret/nginx.pem server-4 ansible_ssh_user=centos ansible_ssh_private_key_file=/home/centos/aws_secret/nginx.pem server-5 ansible_ssh_user=centos ansible_ssh_private_key_file=/home/centos/aws_secret/nginx.pem server-6 ansible_ssh_user=centos ansible_ssh_private_key_file=/home/centos/aws_secret/nginx.pem
如ssh端口有修改還需添加 ansible_ssh_port=3333 ,開放安全組,22端口
ansible命令集
參數 | 註釋 |
---|---|
/usr/bin/ansible | Ansibe AD-Hoc 臨時命令執行工具,經常使用於臨時命令的執行 |
/usr/bin/ansible-doc | ansible 模塊功能查看工具 |
/usr/bin/ansible-galaxy | 下載/上傳優秀代碼或Roles模塊 的官網平臺,基於網絡的 |
/usr/bin/ansible-playbook | ansible 定製自動化的任務集編排工具 |
/usr/bin/ansible-pull | ansible遠程執行命令的工具,拉取配置而非推送配置(使用較少,海量機器時使用,對運維的架構能力要求較高) |
/usr/bin/ansible-vault | ansible 文件加密工具 |
/usr/bin/ansible-console | ansible基於Linux Consoble界面可與用戶交互的命令執行工具 |
ansible經常使用命令
註釋 | 參數 |
---|---|
執行遠程家目錄腳本 | ansible all -m shell -a 'sudo sh aaa.sh ' |
指定節點上的權限,屬主和數組爲root | ansible '*' -m file -a "dest=/tmp/t.sh mode=755 owner=root group=root" |
指定節點上定義一個計劃任務,每隔3分鐘到主控端更新一次時間 | ansible '' -m cron -a 'name="custom job" minute=/3 hour= day= month= weekday= job="/usr/sbin/ntpdate 172.16.254.139"' |
指定節點上建立一個組名爲aaa,gid爲2017的組 | ansible all -m group -a 'gid=2017 name=a' |
在節點上建立一個用戶aaa,組爲aaa | ansible all -m user -a 'name=aaa groups=aaa state=present' |
刪除用戶示例 | ansible all -m user -a 'name=aaa groups=aaa remove=yes' |
在節點上安裝httpd | ansible all -m yum -a "state=present name=httpd" |
在節點上啓動服務,並開機自啓動 | ansible all -m service -a 'name=httpd state=started enabled=yes' |
檢查主機鏈接 | ansible '*' -m ping |
執行遠程命令 | ansible '*' -m command -a 'uptime' |
執行主控端腳本 | ansible '*' -m script -a '/root/test.sh' |
建立軟連接 | ansible '*' -m file -a "src=/etc/resolv.conf dest=/tmp/resolv.conf state=link" |
刪除軟連接 | ansible '*' -m file -a "path=/tmp/resolv.conf state=absent" |
複製文件到遠程服務器 | ansible '*' -m copy -a "src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg owner=root group=root mode=0644" |
將指定url上的文件下載到/tmp | ansible all -m get_url -a 'url=http://10.1.1.116/favicon.ico dest=/tmp' |